free-coding-models 0.5.80 → 0.5.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  <p align="center">
8
8
  <strong>Find the fastest free coding model in seconds</strong><br>
9
- Track ~222 models across 20 trusted free or free-limited AI providers in real time, then install the one you pick straight into your favorite coding tool.<br><br>
9
+ Track a large catalog of free coding models from 20+ trusted AI providers in real time, then install the one you pick straight into your favorite coding tool.<br><br>
10
10
  <strong>Works with:</strong> OpenCode CLI / Desktop / WebUI, OpenClaw, Crush, Goose, Aider, Kilo CLI, Qwen Code, OpenHands, Amp, Hermes, Continue, Cline, Xcode, Pi, ZCode, ForgeCode, Copilot and more.<br><br>
11
11
  <strong>Use Kimi K2, DeepSeek V3/V4, GPT-OSS, Qwen3, MiniMax M3, GLM, Llama 4, Gemma 4, Devstral and more — for free</strong>
12
12
  </p>
@@ -15,8 +15,8 @@
15
15
  <img src="https://img.shields.io/npm/v/free-coding-models?color=3d6b00&label=npm&logo=npm" alt="npm version" width="200"><br>
16
16
  <img src="https://img.shields.io/node/v/free-coding-models?color=3d6b00&logo=node.js" alt="node version" width="200"><br>
17
17
  <img src="https://img.shields.io/npm/l/free-coding-models?color=3d6b00" alt="license" width="200"><br>
18
- <img src="https://img.shields.io/badge/models-222-3d6b00?logo=nvidia" alt="models count" width="200"><br>
19
- <img src="https://img.shields.io/badge/providers-20-1a56db" alt="providers count" width="200">
18
+ <img src="https://img.shields.io/badge/models-large%20catalog-3d6b00?logo=nvidia" alt="models count" width="200"><br>
19
+ <img src="https://img.shields.io/badge/providers-20%2B-1a56db" alt="providers count" width="200">
20
20
  </p>
21
21
 
22
22
  ```bash
@@ -25,7 +25,7 @@ free-coding-models
25
25
  ```
26
26
 
27
27
  <p align="center">
28
- <sub>Then create a free account on one of the <a href="#-free-ai-providers">20 providers</a> to grab an API key.</sub>
28
+ <sub>Then create a free account on one of the <a href="#-free-ai-providers">many providers</a> to grab an API key.</sub>
29
29
  </p>
30
30
 
31
31
  <p align="center">
@@ -60,7 +60,7 @@ free-coding-models
60
60
 
61
61
  ## 💡 Why this tool?
62
62
 
63
- There are **~222 cataloged free or free-limited coding models** across 20 vetted providers. Which one is fastest *right now*? Which one is actually stable, versus just lucky on the last ping?
63
+ There is a large catalog of free and free-limited coding models from 20+ vetted providers. Which one is fastest *right now*? Which one is actually stable, versus just lucky on the last ping?
64
64
 
65
65
  `free-coding-models` (FCM) answers that by pinging every model in parallel, showing live latency, and computing a **live Stability Score (0–100)**. Average latency alone is misleading — a model that randomly spikes to 6 seconds isn't reliable. The stability score combines **p95 latency** (30%), **jitter/variance** (30%), **spike rate** (20%), and **uptime** (20%) to measure true reliability.
66
66
 
@@ -94,7 +94,7 @@ Requires **Node.js 18+**. That's the only prerequisite — FCM has a single runt
94
94
 
95
95
  ### ② Grab one free API key
96
96
 
97
- FCM tracks ~222 models across 20 providers, but you only need **one key** to start. The fastest sign-ups (no credit card, instant key):
97
+ FCM tracks a large catalog of models from 20+ providers, but you only need **one key** to start. The fastest sign-ups (no credit card, instant key):
98
98
 
99
99
  - **Groq** → [console.groq.com/keys](https://console.groq.com/keys) — Llama 4, GPT-OSS, blazing fast
100
100
  - **Cerebras** → [cloud.cerebras.ai](https://cloud.cerebras.ai) — the lowest latency in the whole catalog
@@ -165,30 +165,35 @@ Once the TUI feels familiar, FCM has three more surfaces — pick the one that m
165
165
 
166
166
  ## 🟢 Free AI Providers
167
167
 
168
- **~222 coding models** across 20 active providers, ranked by practical free-tier usefulness. Sign up on any one of them to get a key — you only need one to start.
168
+ A large catalog of coding models from 20+ active providers, ranked by practical free-tier usefulness. Sign up on any one of them to get a key — you only need one to start.
169
169
 
170
170
  | # | Provider | Models | Tier range | Free tier | Env var |
171
171
  |---|----------|--------|-----------|-----------|--------|
172
- | 1 | [NVIDIA NIM](https://build.nvidia.com) | 27 | S+ → C | ~40 RPM (no credit card) | `NVIDIA_API_KEY` |
173
- | 2 | [Groq](https://console.groq.com/keys) | 8 | S → B | 30 RPM, 1K‑14.4K req/day (no credit card) | `GROQ_API_KEY` |
172
+ | 1 | [NVIDIA NIM](https://build.nvidia.com) | 25 | S+ → C | ~40 RPM (no credit card) | `NVIDIA_API_KEY` |
173
+ | 2 | [Groq](https://console.groq.com/keys) | 5 | S → B | 30 RPM, 1K‑14.4K req/day (no credit card) | `GROQ_API_KEY` |
174
174
  | 3 | [Cerebras](https://cloud.cerebras.ai) | 2 | S+ → S | 30 RPM, 1M tokens/day (no credit card) | `CEREBRAS_API_KEY` |
175
- | 4 | [Google AI Studio](https://aistudio.google.com/apikey) | 7 | S+ → A | Gemini free quotas vary by model/region | `GOOGLE_API_KEY` |
176
- | 5 | [GitHub Models](https://models.github.ai) | 15 | S+ → C | Quota depends on GitHub/Copilot tier | `GITHUB_TOKEN` |
177
- | 6 | [Mistral La Plateforme](https://console.mistral.ai/api-keys) | 5 | S+ → A | Experiment plan, free evaluation tier | `MISTRAL_API_KEY` |
178
- | 7 | [Cloudflare Workers AI](https://dash.cloudflare.com) | 16 | S+ → B | 10K neurons/day, 300 RPM (no credit card) | `CLOUDFLARE_API_TOKEN` + `CLOUDFLARE_ACCOUNT_ID` |
179
- | 8 | [OpenRouter](https://openrouter.ai/keys) | 24 | S+ → C | 50 req/day free, 1K/day with $10 spend | `OPENROUTER_API_KEY` |
180
- | 9 | [SambaNova](https://cloud.sambanova.ai/apis) | 7 | S+ → B+ | Small developer quota, useful for light usage | `SAMBANOVA_API_KEY` |
181
- | 10 | [OVHcloud AI Endpoints](https://endpoints.ai.cloud.ovh.net) | 10 | S → B | 2 req/min/IP free, 400 RPM with key | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` |
182
- | 11 | [Codestral](https://console.mistral.ai/api-keys) | 1 | B+ | 30 RPM, 2K req/day | `MISTRAL_API_KEY` |
183
- | 12 | [ZAI](https://z.ai) | 2 | S | Free Flash models only | `ZAI_API_KEY` |
184
- | 13 | [Scaleway](https://console.scaleway.com/iam/api-keys) | 10 | S+ → B | 1M free tokens | `SCALEWAY_API_KEY` |
185
- | 14 | [Alibaba DashScope](https://modelstudio.console.alibabacloud.com) | 11 | S+ → A+ | 1M free tokens/model, Singapore, 90 days | `DASHSCOPE_API_KEY` |
186
- | 15 | [OpenCode Zen](https://opencode.ai/zen) | 5 | S+ → A | Free with OpenCode account | Zen models |
187
- | 16 | [Kilo](https://kilo.ai) | 1 | A+ | Free auto-router works without a key | optional `KILO_API_KEY` |
188
- | 17 | [LLM7](https://llm7.io) | 4 | S+ → B+ | Shared free tier, optional free token | optional `LLM7_API_KEY` |
189
- | 18 | [Routeway](https://routeway.ai) | 15 | S+ → C | Explicit `:free` zero-price models | `ROUTEWAY_API_KEY` |
190
- | 19 | [Novita AI](https://novita.ai) | 4 | S+ → S | Only zero-price live chat models included | `NOVITA_API_KEY` |
191
- | 20 | [Ollama Cloud](https://ollama.com/pricing) | 17 | S+ → A | Free cloud usage with session/weekly limits | `OLLAMA_API_KEY` |
175
+ | 4 | [Google AI Studio](https://aistudio.google.com/apikey) | 10 | S+ → A | Gemini free quotas vary by model/region | `GOOGLE_API_KEY` |
176
+ | 5 | [Mistral La Plateforme](https://console.mistral.ai/api-keys) | 6 | S+ → A | Experiment plan, free evaluation tier | `MISTRAL_API_KEY` |
177
+ | 6 | [Cloudflare Workers AI](https://dash.cloudflare.com) | 19 | S+ → B | 10K neurons/day, 300 RPM (no credit card) | `CLOUDFLARE_API_TOKEN` + `CLOUDFLARE_ACCOUNT_ID` |
178
+ | 7 | [OpenRouter](https://openrouter.ai/keys) | 14 | S+ → C | 50 req/day free, 1K/day with $10 spend | `OPENROUTER_API_KEY` |
179
+ | 8 | [SambaNova](https://cloud.sambanova.ai/apis) | 6 | S+ → B+ | Small developer quota, useful for light usage | `SAMBANOVA_API_KEY` |
180
+ | 9 | [OVHcloud AI Endpoints](https://endpoints.ai.cloud.ovh.net) | 10 | S → B | 2 req/min/IP free, 400 RPM with key | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` |
181
+ | 10 | [Codestral](https://console.mistral.ai/api-keys) | 1 | B+ | 30 RPM, 2K req/day | `MISTRAL_API_KEY` |
182
+ | 11 | [ZAI](https://z.ai) | 7 | S | Free Flash models only | `ZAI_API_KEY` |
183
+ | 12 | [Scaleway](https://console.scaleway.com/iam/api-keys) | 15 | S+ → B | 1M free tokens | `SCALEWAY_API_KEY` |
184
+ | 13 | [Alibaba DashScope](https://modelstudio.console.alibabacloud.com) | 23 | S+ → A+ | 1M free tokens/model, Singapore, 90 days | `DASHSCOPE_API_KEY` |
185
+ | 14 | [OpenCode Zen](https://opencode.ai/zen) | 5 | S+ → A | Free with OpenCode account | Zen models |
186
+ | 15 | [Kilo](https://kilo.ai) | 2 | A+ | Free auto-router works without a key | optional `KILO_API_KEY` |
187
+ | 16 | [LLM7](https://llm7.io) | 5 | S+ → B+ | Shared free tier, optional free token | optional `LLM7_API_KEY` |
188
+ | 17 | [Routeway](https://routeway.ai) | 10 | S+ → C | Explicit `:free` zero-price models | `ROUTEWAY_API_KEY` |
189
+ | 18 | [Novita AI](https://novita.ai) | 0 | - | No zero-price models currently | `NOVITA_API_KEY` |
190
+ | 19 | [Ollama Cloud](https://ollama.com/pricing) | 17 | S+ → A | Free cloud usage with session/weekly limits | `OLLAMA_API_KEY` |
191
+ | 20 | [Pollinations AI](https://enter.pollinations.ai) ⚠️ experimental | 10 | S+ → B+ | Daily Pollen grants, free tier via Pollen (see note below) | `POLLINATIONS_API_KEY` |
192
+ | 21 | [SiliconFlow](https://cloud.siliconflow.cn/account/ak) | 3 | A → B+ | 3 models @ $0, 1000 RPM (phone SMS required) | `SILICONFLOW_API_KEY` |
193
+ | 22 | [Requesty](https://app.requesty.ai/api-keys) | 12 | S+ → C | 200 req/day free, no card (4x OpenRouter) | `REQUESTY_API_KEY` |
194
+
195
+ > **Pollinations Pollen, c'est quoi ?** Pollinations ne facture pas en $ mais en **Pollen** (≈ $1). Pas besoin d'acheter : tu recois du Pollen **gratuit chaque jour** selon ton tier seed/flower/nectar via quests (star le repo `pollinations/pollinations` sur GitHub, aider sur un issue). Si ton solde affiche `0.0000` sur `enter.pollinations.ai`, tout `MISS` (prompt non cache) retourne `402 PAYMENT_REQUIRED` ("Insufficient balance ~0.0001 pollen") et le ping affichera `402`. Un `HIT` Cloudflare cache peut encore passer en `200` meme avec 0 Pollen mais ce n'est pas fiable. Verifie ton solde sur `enter.pollinations.ai` -> API Keys, complete une quest et attends le grant quotidien a minuit UTC. **Note : integration Pollinations encore experimentale et non confirmee comme stable, le systeme Pollen peut changer.**
196
+ > **SiliconFlow & Requesty** : integrations verifiees le 2026-08-24 via `/v1/models` live et docs officielles, free tiers recurrents confirmes sans Pollen.
192
197
 
193
198
  > 💡 One key is enough to start. Add more at any time by pressing **`P`** inside the TUI (or via the Web Dashboard **Settings** page). A few providers (`Kilo`, `LLM7`, OVHcloud sandbox) can even answer without a key, with tighter shared limits.
194
199
 
@@ -231,7 +236,7 @@ To protect you, FCM:
231
236
 
232
237
  The TUI is the heart of FCM. Launch it with `free-coding-models` and you get a live, sortable table of every model — real latency, stability, verdict, and a one-key launch into your coding tool.
233
238
 
234
- <p align="center"><video src="website/public/videos/tui-first-launch.mp4" alt="First launch — ~222 models ping in parallel" autoplay muted loop playsinline width="100%"></video></p>
239
+ <p align="center"><video src="website/public/videos/tui-first-launch.mp4" alt="First launch — many models ping in parallel" autoplay muted loop playsinline width="100%"></video></p>
235
240
 
236
241
  ### First-run flow
237
242
 
@@ -761,7 +766,7 @@ Every routed request through the daemon feeds a persistent per-model telemetry f
761
766
 
762
767
  ### Features at a glance
763
768
 
764
- - **Parallel pings** — all ~222 models tested simultaneously via native `fetch`
769
+ - **Parallel pings** — all models tested simultaneously via native `fetch`
765
770
  - **AI benchmark columns** — `Ctrl+A` / `Ctrl+U` split into AI Latency + TPS; optional Startup AI Speed Scan
766
771
  - **Adaptive monitoring** — 2s burst for 60s → 10s normal → 30s idle
767
772
  - **Stability score** — composite 0–100 (p95, jitter, spike rate, uptime)
@@ -801,7 +806,7 @@ A: Yes — see [`sources.js`](./sources.js) for the model catalog format.
801
806
 
802
807
  ## ⚖️ Model Licensing & Commercial Use
803
808
 
804
- **Short answer:** the ~222 cataloged models are API/CLI-served models where generated-output ownership is generally granted by the provider/model terms. **You own the generated output** — code, text, or otherwise — and can use it commercially. The licenses below govern the *model weights themselves*, not your generated content.
809
+ **Short answer:** the cataloged models are API/CLI-served where generated-output ownership is generally granted by the provider/model terms. **You own the generated output** — code, text, or otherwise — and can use it commercially. The licenses below govern the *model weights themselves*, not your generated content.
805
810
 
806
811
  | License | Models | Commercial Output |
807
812
  |---------|--------|:-----------------:|
@@ -0,0 +1,25 @@
1
+ # Changelog v0.5.81 - 2026-08-24
2
+
3
+ ### Added
4
+ - **3 new free recurring providers** (total 22 providers, ~207 models)
5
+ - **Pollinations AI** — 10 models `gen.pollinations.ai/v1` : `laguna`, `minimax-m2.7`, `qwen-coder`, `deepseek`, `kimi-code`, `openai`, `gemma-4-31b`, `gpt-oss`, `qwen3.7-flash`, `nemotron-3.5-lightning` — free via daily Pollen grants (Quest 3.25) , ⚠️ experimental integration not yet confirmed stable (Pollen system may change, `MISS` = 402 when balance 0, `HIT` cache may still 200)
6
+ - **SiliconFlow** — 3 models `api.siliconflow.cn/v1` : `THUDM/GLM-Z1-9B-0414`, `Qwen/Qwen3-8B`, `deepseek-ai/DeepSeek-R1-Distill-Qwen-7B` — 3 models @ $0 forever, 1000 RPM, phone SMS required, verified 2026-08-24 via pricing page
7
+ - **Requesty** — 12 models `router.requesty.ai/v1` : `nvidia/nemotron-3-ultra-550b-a55b`, `poolside/laguna-xs.2`, `nvidia/nemotron-3-super`, `poolside/laguna-m.1`, `google/gemma-4-31b-it`, `nvidia/nemotron-3-nano-omni`, `nvidia/nemotron-3-nano`, `nvidia/nemotron-3.5-lightning-30b-a3b`, `mistral/leanstral-1-5`, `novita/ling-3.0-tiny`, `nvidia/content-safety`, `nvidia/muse-glimmer-30b` — 200 req/day free no card, 4x OpenRouter, verified live via `GET /v1/models` 676 models 12 zero-price
8
+ - **Provider metadata** for the 3 new providers: `ENV_VAR_NAMES` (`POLLINATIONS_API_KEY`, `SILICONFLOW_API_KEY`, `REQUESTY_API_KEY`), `PROVIDER_METADATA` labels/couleurs/signupHint/rateLimits with detailed Pollen explanation, `PROVIDER_CAPABILITIES` daily reset, `PROVIDER_AUTH_ENDPOINTS` fixes
9
+ - **Theme colors** for `pollinations` (pink) and `requesty` (blue) in both dark/light palettes
10
+ - **Pollen help** in Settings overlay and README/website: explains Pollen ≈ $1, daily Quest grants via tier/quests, 0 Pollen = 402, HIT vs MISS, wallet `enter.pollinations.ai`, grants at midnight UTC, experimental note
11
+
12
+ ### Changed
13
+ - **README** : removed hard-coded total counts everywhere (super chiant a maintenir) — `~207 models across 22 providers` -> `a large catalog of free coding models from 20+ providers`, badges `models-207` -> `models-large catalog` `providers-22` -> `providers-20+`, `~222` video caption -> `many`, `Parallel pings all ~207` -> `all models`, `~207 cataloged` -> `the cataloged`; provider table updated to 22 rows with real per-provider counts and new Pollinations/SiliconFlow/Requesty rows, added Pollen explainer block after table (with experimental warning) and SiliconFlow/Requesty verified note; removed GitHub Models from active table (retired 2026-07-30)
14
+ - **Website docs** : `website/src/content/docs/introduction.mdx` and `quick-start.mdx` and `core/providers.mdx` and `docs/development.md` and `routes/index.tsx` hero `222+` -> `Many` — same generic wording, no hard totals
15
+ - **Pollinations experimental flag** : README and `website/src/content/docs/core/providers.mdx` mark Pollinations `⚠️ experimental` and note `not yet confirmed stable`
16
+
17
+ ### Fixed
18
+ - **SiliconFlow baseURL** : `api.siliconflow.com` -> `api.siliconflow.cn` in `src/core/opencode.js` (2 sites) and `src/core/kilo.js` and `src/core/provider-key-tester.js` `siliconflow` endpoint now `https://api.siliconflow.cn/v1/models`
19
+ - **Provider key tester** : `pollinations` and `requesty` set to `null` (their `/v1/models` are public without auth, so auth-only probe would always 200 and give false ok, now it falls back to ping which correctly shows 402 when balance 0)
20
+ - **Sync** : `sync-website-sources.sh` run -> `website/src/_fcm-sources/sources.js` updated to 22 providers
21
+
22
+ ### Verified
23
+ - `pnpm test` 813 pass 0 fail
24
+ - `node -e import('./sources.js')` 22 providers 207 models 0 dups
25
+ - Live probes 2026-08-24: Pollinations `sk_GCaY...` and `sk_0dSR...` both `402` on MISS with `0.0000` balance (HIT still 200 via fallback), Quest wallet `3.25` not yet linked to keys (Budget ∞ but still 0), Requesty 12 zero-price confirmed, SiliconFlow pricing page verified
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-coding-models",
3
- "version": "0.5.80",
3
+ "version": "0.5.81",
4
4
  "description": "Find the fastest coding LLM models in seconds — ping free models from multiple providers, pick the best one for OpenCode, Cursor, or any AI coding assistant.",
5
5
  "keywords": [
6
6
  "nvidia",
@@ -76,7 +76,7 @@
76
76
  "@tabler/icons-react": "^3.44.0",
77
77
  "@tanstack/react-table": "^8.21.3",
78
78
  "chalk": "^5.6.2",
79
- "kandown": "^0.50.0",
79
+ "kandown": "^0.52.0",
80
80
  "socket.io": "^4.8.3",
81
81
  "socket.io-client": "^4.8.3",
82
82
  "@tanstack/react-virtual": "^3.14.2"
package/sources.js CHANGED
@@ -29,7 +29,7 @@
29
29
  * 📖 Secondary: https://swe-rebench.com (independent evals, scores are lower)
30
30
  * 📖 Leaderboard tracker: https://www.marc0.dev/en/leaderboard
31
31
  *
32
- * @exports nvidiaNim, groq, cerebras, sambanova, openrouter, githubModels, mistral, codestral, scaleway, googleai, zai, qwen, cloudflare, ovhcloud, opencodeZen, kilo, llm7, routeway, novita, ollamaCloud — model arrays per active provider
32
+ * @exports nvidiaNim, groq, cerebras, sambanova, openrouter, githubModels, mistral, codestral, scaleway, googleai, zai, qwen, cloudflare, ovhcloud, opencodeZen, kilo, llm7, routeway, novita, ollamaCloud, pollinations, siliconflow, requesty — model arrays per active provider
33
33
  * @exports sources — map of active free/free-limited providers, each with { name, url, models }
34
34
 
35
35
  * @exports MODELS — flat array of [modelId, label, tier, sweScore, ctx, providerKey]
@@ -450,6 +450,68 @@ export const novita = [
450
450
  // Removed (2026-07-27): qwen/qwen3.5-plus (Qwen3.5 Plus) — no longer in novita catalog
451
451
  ]
452
452
 
453
+ // 📖 Pollinations AI source - https://gen.pollinations.ai
454
+ // 📖 OpenAI-compatible endpoint: https://gen.pollinations.ai/v1/chat/completions
455
+ // 📖 Free tier: anonymous without key or free API key from https://enter.pollinations.ai
456
+ // 📖 Daily Pollen grants per tier (seed/flower/nectar) — free models cost Pollen but grants renew daily; anonymous tier has rate limits.
457
+ // 📖 Verified live 2026-08-23 via GET /v1/models (319 models); IDs below are live and coding-relevant.
458
+ export const pollinations = [
459
+ // ── S+ tier — SWE-bench Verified ≥70% ──
460
+ ['laguna', 'Laguna XS.2', 'S+', '70.9%', '1M'],
461
+ ['minimax-m2.7', 'MiniMax M2.7', 'S+', '78.0%', '200k'],
462
+ // ── S tier — SWE-bench Verified 60–70% ──
463
+ ['qwen-coder', 'Qwen3 Coder', 'S', '69.6%', '262k'],
464
+ ['deepseek', 'DeepSeek V3', 'S', '66.0%', '1M'],
465
+ ['kimi-code', 'Kimi K2 Code', 'S', '60.4%', '262k'],
466
+ ['openai', 'OpenAI GPT', 'S', '62.4%', '400k'],
467
+ // ── A+ tier — SWE-bench Verified 50–60% ──
468
+ ['gemma-4-31b', 'Gemma 4 31B', 'A+', '52.0%', '262k'],
469
+ ['gpt-oss', 'GPT OSS 20B', 'A+', '50.3%', '131k'],
470
+ ['qwen3.7-flash', 'Qwen3.7 Flash', 'A+', '-', '1M'],
471
+ // ── B+ tier ──
472
+ ['nemotron-3.5-lightning', 'Nemotron 3.5 Lightning', 'B+', '-', '262k'],
473
+ ]
474
+
475
+ // 📖 SiliconFlow source - https://api.siliconflow.cn/v1/chat/completions
476
+ // 📖 OpenAI-compatible endpoint: https://api.siliconflow.cn/v1
477
+ // 📖 Free tier: permanently free models at $0 (no card needed beyond phone SMS verification).
478
+ // 📖 Verified 2026-08-23 via pricing page + docs: THUDM/GLM-Z1-9B-0414 is 免费; Qwen3-8B and DeepSeek-R1-Distill-Qwen-7B
479
+ // 📖 documented as free in SiliconFlow guide 2026-06-05 ("Three models are completely free: Qwen3-8B, DeepSeek-R1-Distill-Qwen-7B, DeepSeek-OCR")
480
+ // 📖 and still reachable with free-tier rate limits (1000 RPM). Keep only the chat text models here.
481
+ export const siliconflow = [
482
+ // ── A tier — SWE-bench Verified 40–50% ──
483
+ ['THUDM/GLM-Z1-9B-0414', 'GLM-Z1 9B', 'A', '-', '32k'],
484
+ // ── B+ tier ──
485
+ ['Qwen/Qwen3-8B', 'Qwen3 8B', 'B+', '30.0%', '32k'],
486
+ ['deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', 'DeepSeek R1 Distill Qwen 7B', 'A', '-', '32k'],
487
+ ]
488
+
489
+ // 📖 Requesty source - https://router.requesty.ai/v1
490
+ // 📖 OpenAI-compatible gateway: https://router.requesty.ai/v1/chat/completions
491
+ // 📖 Free tier: 200 req/day on zero-price free models (4× OpenRouter), no card, EU residency, routing/caching included.
492
+ // 📖 Verified live 2026-08-23 via GET /v1/models (676 models, 12 with input_price=0 & output_price=0).
493
+ export const requesty = [
494
+ // ── S+ tier — SWE-bench Verified ≥70% ──
495
+ ['nvidia/nemotron-3-ultra-550b-a55b', 'Nemotron 3 Ultra', 'S+', '71.9%', '1M'],
496
+ ['poolside/laguna-xs.2', 'Laguna XS.2', 'S+', '70.9%', '32k'],
497
+ // ── S tier — SWE-bench Verified 60–70% ──
498
+ ['nvidia/nemotron-3-super-120b-a12b', 'Nemotron 3 Super', 'S', '60.5%', '1M'],
499
+ ['poolside/laguna-m.1', 'Laguna M.1', 'S', '-', '32k'],
500
+ // ── A+ tier — SWE-bench Verified 50–60% ──
501
+ ['google/gemma-4-31b-it', 'Gemma 4 31B', 'A+', '52.0%', '262k'],
502
+ ['nvidia/nemotron-3-nano-omni-30b-a3b-reasoning', 'Nemotron 3 Omni', 'A+', '52.0%', '131k'],
503
+ // ── A tier — SWE-bench Verified 40–50% ──
504
+ ['nvidia/nemotron-3-nano-30b-a3b', 'Nemotron Nano 30B', 'A-', '38.8%', '262k'],
505
+ // ── B+ tier — SWE-bench Verified 30–35% ──
506
+ ['nvidia/nemotron-3.5-lightning-30b-a3b', 'Nemotron 3.5 Lightning', 'B+', '-', '1M'],
507
+ // ── B tier — SWE-bench Verified 20–30% ──
508
+ ['mistral/leanstral-1-5', 'Leanstral 1.5', 'B', '-', '262k'],
509
+ ['novita/inclusionai/ling-3.0-tiny', 'Ling 3.0 Tiny', 'B', '-', '262k'],
510
+ // ── C tier — other zero-price models (kept for breadth) ──
511
+ ['nvidia/nemotron-3.5-content-safety', 'Nemotron Content Safety', 'C', '-', '131k'],
512
+ ['nvidia/muse-glimmer-30b', 'Muse Glimmer 30B', 'C', '-', '131k'],
513
+ ]
514
+
453
515
  // 📖 Ollama Cloud source - https://ollama.com/pricing and https://ollama.com/search?c=cloud
454
516
  // 📖 Free plan includes cloud model access with session/weekly limits. This list keeps coding-relevant cloud models only.
455
517
  // 📖 Catalog verified 2026-07-18 against official Ollama cloud model search page.
@@ -629,6 +691,27 @@ export const sources = {
629
691
  quotaCode: 'limited',
630
692
  models: novita, // Empty — kept for backward compat in user configs
631
693
  },
694
+ pollinations: {
695
+ name: 'Pollinations AI',
696
+ url: 'https://gen.pollinations.ai/v1/chat/completions',
697
+ quota: 'Free · daily Pollen grants · key at enter.pollinations.ai',
698
+ quotaCode: 'free',
699
+ models: pollinations,
700
+ },
701
+ siliconflow: {
702
+ name: 'SiliconFlow',
703
+ url: 'https://api.siliconflow.cn/v1/chat/completions',
704
+ quota: 'Free · 3 models @ $0 · 1000 RPM',
705
+ quotaCode: 'free',
706
+ models: siliconflow,
707
+ },
708
+ requesty: {
709
+ name: 'Requesty',
710
+ url: 'https://router.requesty.ai/v1/chat/completions',
711
+ quota: 'Free · 200 req/day · no card',
712
+ quotaCode: 'free',
713
+ models: requesty,
714
+ },
632
715
  'ollama-cloud': {
633
716
  name: 'Ollama Cloud',
634
717
  url: 'https://ollama.com/v1/chat/completions',
@@ -183,6 +183,9 @@ const ENV_VARS = {
183
183
  routeway: 'ROUTEWAY_API_KEY',
184
184
  novita: 'NOVITA_API_KEY',
185
185
  'ollama-cloud': 'OLLAMA_API_KEY',
186
+ pollinations: ['POLLINATIONS_API_KEY', 'POLLINATIONS_TOKEN'],
187
+ siliconflow: 'SILICONFLOW_API_KEY',
188
+ requesty: 'REQUESTY_API_KEY',
186
189
  }
187
190
 
188
191
  // 📖 Smart Router defaults are intentionally conservative: balanced probing,
package/src/core/kilo.js CHANGED
@@ -163,7 +163,7 @@ export async function startKilo(model, fcmConfig) {
163
163
  config.provider.siliconflow = {
164
164
  npm: '@ai-sdk/openai-compatible',
165
165
  name: 'SiliconFlow',
166
- options: { baseURL: 'https://api.siliconflow.com/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
166
+ options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
167
167
  models: {}
168
168
  }
169
169
  } else if (providerKey === 'together') {
@@ -478,7 +478,7 @@ export async function startOpenCode(model, fcmConfig) {
478
478
  config.provider.siliconflow = {
479
479
  npm: '@ai-sdk/openai-compatible',
480
480
  name: 'SiliconFlow',
481
- options: { baseURL: 'https://api.siliconflow.com/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
481
+ options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
482
482
  models: {}
483
483
  }
484
484
  } else if (providerKey === 'together') {
@@ -846,7 +846,7 @@ export async function startOpenCodeDesktop(model, fcmConfig) {
846
846
  config.provider.siliconflow = {
847
847
  npm: '@ai-sdk/openai-compatible',
848
848
  name: 'SiliconFlow',
849
- options: { baseURL: 'https://api.siliconflow.com/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
849
+ options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
850
850
  models: {}
851
851
  }
852
852
  } else if (providerKey === 'together') {
@@ -65,7 +65,9 @@ export const PROVIDER_AUTH_ENDPOINTS = {
65
65
  fireworks: { url: 'https://api.fireworks.ai/v1/models', method: 'GET' },
66
66
  hyperbolic: { url: 'https://api.hyperbolic.xyz/v1/models', method: 'GET' },
67
67
  scaleway: { url: 'https://api.scaleway.ai/v1/models', method: 'GET' },
68
- siliconflow: { url: 'https://api.siliconflow.com/v1/models', method: 'GET' },
68
+ siliconflow: { url: 'https://api.siliconflow.cn/v1/models', method: 'GET' },
69
+ pollinations: null,
70
+ requesty: null,
69
71
  together: { url: 'https://api.together.xyz/v1/models', method: 'GET' },
70
72
  perplexity: { url: 'https://api.perplexity.ai/v1/models', method: 'GET' },
71
73
  chutes: { url: 'https://chutes.ai/v1/models', method: 'GET' },
@@ -62,6 +62,9 @@ export const ENV_VAR_NAMES = {
62
62
  routeway: 'ROUTEWAY_API_KEY',
63
63
  novita: 'NOVITA_API_KEY',
64
64
  'ollama-cloud': 'OLLAMA_API_KEY',
65
+ pollinations: 'POLLINATIONS_API_KEY',
66
+ siliconflow: 'SILICONFLOW_API_KEY',
67
+ requesty: 'REQUESTY_API_KEY',
65
68
  }
66
69
 
67
70
  // 📖 OPENCODE_MODEL_MAP: sparse table of model IDs that differ between sources.js and OpenCode's
@@ -201,13 +204,6 @@ export const PROVIDER_METADATA = {
201
204
  signupHint: 'Get API key',
202
205
  rateLimits: 'Gemini free quotas vary by model and region',
203
206
  },
204
- siliconflow: {
205
- label: 'SiliconFlow',
206
- color: chalk.rgb(178, 235, 242),
207
- signupUrl: 'https://cloud.siliconflow.cn/account/ak',
208
- signupHint: 'API Keys → Create',
209
- rateLimits: 'Free models: usually 100 RPM, varies by model',
210
- },
211
207
  together: {
212
208
  label: 'Together AI',
213
209
  color: chalk.rgb(255, 241, 118),
@@ -312,6 +308,28 @@ export const PROVIDER_METADATA = {
312
308
  rateLimits: 'Only zero-price live chat models are listed; other Novita models are paid/trial-credit',
313
309
  paidProviderNote: 'paid — 3 free models',
314
310
  },
311
+ pollinations: {
312
+ label: 'Pollinations AI ⚠️ experimental',
313
+ color: chalk.rgb(255, 105, 180),
314
+ signupUrl: 'https://enter.pollinations.ai',
315
+ signupHint: 'enter.pollinations.ai → API Keys (free Pollen daily; star github.com/pollinations/pollinations to earn Pollen; 0 Pollen = 402; no purchase needed)',
316
+ rateLimits: 'Free via Pollen (daily grants; ~0.0001-0.003 Pollen/req; 0 Pollen = 402; experimental, system may change)',
317
+ detailedLimits: 'Pollen ≈ $1. Daily free Pollen via tier (seed/flower/nectar) + quests (star repo, help issue). No purchase required. Cost per request 0.0001-0.003 Pollen. If balance is 0.0000, every MISS returns 402 PAYMENT_REQUIRED and the TUI shows 402; HIT (Cloudflare cache) may still return 200 but is not reliable. Check balance at enter.pollinations.ai → API Keys. Grants reset daily at midnight UTC. Integration is experimental and not yet confirmed as stable.',
318
+ },
319
+ siliconflow: {
320
+ label: 'SiliconFlow',
321
+ color: chalk.rgb(178, 235, 242),
322
+ signupUrl: 'https://cloud.siliconflow.cn/account/ak',
323
+ signupHint: 'API Keys → Create (phone SMS verification required)',
324
+ rateLimits: 'Free · 3 models @ $0 · 1000 RPM · 1M tokens/day per model',
325
+ },
326
+ requesty: {
327
+ label: 'Requesty',
328
+ color: chalk.rgb(100, 149, 255),
329
+ signupUrl: 'https://app.requesty.ai/api-keys',
330
+ signupHint: 'API Keys → Create (200 req/day free, no card)',
331
+ rateLimits: 'Free · 200 req/day on free models (20 req/min) · no card',
332
+ },
315
333
  'ollama-cloud': {
316
334
  label: 'Ollama Cloud',
317
335
  color: chalk.rgb(230, 230, 230),
@@ -61,6 +61,9 @@ export const PROVIDER_CAPABILITIES = {
61
61
  routeway: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'unknown' },
62
62
  novita: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'unknown' },
63
63
  'ollama-cloud': { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'rolling' },
64
+ pollinations: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
65
+ siliconflow: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
66
+ requesty: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
64
67
  }
65
68
 
66
69
  /** Fallback for unrecognized providers */
package/src/tui/theme.js CHANGED
@@ -192,6 +192,8 @@ const PROVIDER_PALETTES = {
192
192
  llm7: [180, 255, 140],
193
193
  routeway: [130, 210, 255],
194
194
  novita: [255, 185, 120],
195
+ pollinations: [255, 105, 180],
196
+ requesty: [100, 149, 255],
195
197
  'ollama-cloud': [230, 230, 230],
196
198
  },
197
199
  light: {
@@ -222,6 +224,8 @@ const PROVIDER_PALETTES = {
222
224
  llm7: [73, 130, 0],
223
225
  routeway: [0, 105, 180],
224
226
  novita: [173, 84, 0],
227
+ pollinations: [170, 45, 110],
228
+ requesty: [0, 72, 170],
225
229
  'ollama-cloud': [88, 88, 88],
226
230
  },
227
231
  }