free-coding-models 0.5.92 โ†’ 0.5.93

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
- Live latency, stability and verdicts for 228 models from 24 free AI providers, then install the one you pick straight into your favorite coding tool.<br><br>
9
+ Live latency, stability and verdicts for 251 models from 24 free AI providers, 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, jcode, Caveman Code and more.
11
11
  </p>
12
12
 
@@ -35,7 +35,7 @@ free-coding-models
35
35
 
36
36
  ## ๐Ÿ’ก Why this tool?
37
37
 
38
- There is a large catalog of free and free-limited coding models (**24 providers / 228 live models**, generated from [`sources.js`](./sources.js)). Which one is fastest *right now*? Which one is actually stable, versus just lucky on the last ping?
38
+ There is a large catalog of free and free-limited coding models (**24 providers / 251 live models**, generated from [`sources.js`](./sources.js)). Which one is fastest *right now*? Which one is actually stable, versus just lucky on the last ping?
39
39
 
40
40
  `free-coding-models` (FCM) answers that by pinging every model in parallel, showing live latency, and computing a **live Stability Score (0-100)** combining p95 latency, jitter, spike rate and uptime. Average latency alone is misleading: a model that randomly spikes to 6 seconds is not reliable.
41
41
 
@@ -87,18 +87,20 @@ free-coding-models --fiable # print the single most reliable model
87
87
 
88
88
  ## ๐ŸŸข Providers
89
89
 
90
- **24 active providers / 228 live models**, sorted by live model count. Top 8:
90
+ **24 active providers / 251 live models**, sorted by live model count. Top 8:
91
91
 
92
92
  | Provider | Models | Best tier | Env var |
93
93
  |----------|--------|-----------|---------|
94
- | [Alibaba DashScope](https://modelstudio.console.alibabacloud.com) | 27 | S+ | `DASHSCOPE_API_KEY` |
95
- | [Ollama Cloud](https://ollama.com/settings/keys) | 19 | S+ | `OLLAMA_API_KEY` |
96
- | [OpenRouter](https://openrouter.ai/keys) | 19 | S+ | `OPENROUTER_API_KEY` |
97
- | [Cloudflare AI](https://dash.cloudflare.com) | 15 | S | `CLOUDFLARE_API_TOKEN` |
98
- | [Kilo](https://kilo.ai) | 14 | S+ | `KILO_API_KEY` |
99
- | [NVIDIA NIM](https://build.nvidia.com) | 13 | S+ | `NVIDIA_API_KEY` |
94
+ | [Alibaba DashScope](https://modelstudio.console.alibabacloud.com) | 25 | S+ | `DASHSCOPE_API_KEY` |
95
+ | [Cloudflare AI](https://dash.cloudflare.com) | 21 | S+ | `CLOUDFLARE_API_TOKEN` |
96
+ | [Ollama Cloud](https://ollama.com/settings/keys) | 20 | S+ | `OLLAMA_API_KEY` |
97
+ | [OpenRouter](https://openrouter.ai/keys) | 20 | S+ | `OPENROUTER_API_KEY` |
98
+ | [Kilo](https://kilo.ai) | 18 | S+ | `KILO_API_KEY` |
99
+ | [NVIDIA NIM](https://build.nvidia.com) | 16 | S+ | `NVIDIA_API_KEY` |
100
+ | [OVHcloud AI](https://endpoints.ai.cloud.ovh.net) | 13 | S+ | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` |
100
101
  | [Pollinations AI](https://enter.pollinations.ai) | 13 | S+ | `POLLINATIONS_API_KEY` |
101
- | [OVHcloud AI](https://endpoints.ai.cloud.ovh.net) | 12 | S+ | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` |
102
+
103
+ > ๐Ÿงพ **What "free" means here:** free is a property of the *(provider, model)* pair, never of the provider as a whole. A row is listed only when that exact model id costs $0 to call through that provider (permanent free tier, `:free` variant, or free plan), verified live at audit time. The same open-weights model can be free on one host and paid on another - paid siblings are deliberately excluded. Full breakdown and badge legend: [`docs/providers.md`](./docs/providers.md).
102
104
 
103
105
  > ๐Ÿ“– **Full table, free-tier limits, env vars, tier scale and provider notes:** [`docs/providers.md`](./docs/providers.md) (generated from `sources.js` by `node scripts/generate-provider-table.mjs`, so counts cannot drift). OpenCode Zen's free models are listed there too.
104
106
 
@@ -247,7 +249,7 @@ Keys live locally in `~/.free-coding-models.json` (`0600`) and are only ever sen
247
249
 
248
250
  ## Contributors
249
251
 
250
- Created and maintained by [Vanessa Depraute](https://vanessadepraute.dev) ([@vava-nessa](https://github.com/vava-nessa)), with contributions from [@erwinh22](https://github.com/erwinh22), [@whit3rabbit](https://github.com/whit3rabbit), [@skylaweber](https://github.com/skylaweber), [@PhucTruong-ctrl](https://github.com/PhucTruong-ctrl), [@chindris-mihai-alexandru](https://github.com/chindris-mihai-alexandru), [@serajbaltu](https://github.com/serajbaltu), [@stgreenb](https://github.com/stgreenb), [@MoriDanWork](https://github.com/MoriDanWork), [@fan92rus](https://github.com/fan92rus), [@Muhammad95959](https://github.com/Muhammad95959), [@FaintFlower](https://github.com/FaintFlower), [@lehneres](https://github.com/lehneres), [@ia-S-on](https://github.com/ia-S-on) and [@bangla24bdrang-lab](https://github.com/bangla24bdrang-lab).
252
+ Created and maintained by [Vanessa Depraute](https://vanessadepraute.dev) ([@vava-nessa](https://github.com/vava-nessa)), with contributions from [@erwinh22](https://github.com/erwinh22), [@whit3rabbit](https://github.com/whit3rabbit), [@skylaweber](https://github.com/skylaweber), [@PhucTruong-ctrl](https://github.com/PhucTruong-ctrl), [@chindris-mihai-alexandru](https://github.com/chindris-mihai-alexandru), [@serajbaltu](https://github.com/serajbaltu), [@stgreenb](https://github.com/stgreenb), [@MoriDanWork](https://github.com/MoriDanWork), [@fan92rus](https://github.com/fan92rus), [@Muhammad95959](https://github.com/Muhammad95959), [@FaintFlower](https://github.com/FaintFlower), [@lehneres](https://github.com/lehneres), [@ia-S-on](https://github.com/ia-S-on), [@bangla24bdrang-lab](https://github.com/bangla24bdrang-lab) and [@Sy57em1](https://github.com/Sy57em1).
251
253
 
252
254
  โ†’ Full credits and highlighted contributions: [`CONTRIBUTORS.md`](./CONTRIBUTORS.md)
253
255
 
@@ -0,0 +1,21 @@
1
+ # Changelog v0.5.93 - 2026-09-21
2
+
3
+ ### Fixed
4
+
5
+ - **Mistral provider fully revived** (PR #185 by [@Sy57em1](https://github.com/Sy57em1)). The 2026-09-15 audit had rewritten every Mistral model id into a date-stamped form the API does not accept, so since v0.5.92 all 9 Mistral models returned `400 invalid_model` and the whole provider was dead. Every id was re-verified against the live `GET https://api.mistral.ai/v1/models` on a real Experiment-plan key:
6
+ - Restored: `mistral-medium-3-5`, `magistral-medium-latest` (moved to A+), `mistral-small-2603`, `ministral-14b-2512`, `ministral-8b-2512`, `ministral-3b-2512`
7
+ - Removed: Mistral Large 3 (no `large` model exists upstream at all), Z.ai GLM 5.2 (403 `tier_not_allowed`, paid tier only, never belonged in a free catalog), Mistral Small Creative (absent from the live catalog)
8
+ - `ministral-3b-2512` context window corrected 256k to 128k, taken from the model's real `max_context_length`
9
+ - Router daemon test updated to route through a model that exists
10
+
11
+ ### Added
12
+
13
+ - **"What does free mean here?" is now documented everywhere** (issue #186). Free is a property of the *(provider, model)* pair, never of the provider: a row is listed only when that exact model id costs $0 through that specific provider, verified live. The same open-weights model can be free on one host and paid on another. New content:
14
+ - `docs/providers.md`: full explainer section with the three-badge legend, generated by `scripts/generate-provider-table.mjs` so it cannot drift
15
+ - README: summary paragraph in the Providers section
16
+ - Web Dashboard models page: quota badge tooltips plus a legend line under the table, matching the badge colors (Free = recurring $0 tier, Limited = depleting allowance, Metered = $0-priced passthrough)
17
+ - [@Sy57em1](https://github.com/Sy57em1) added to the contributors lists.
18
+
19
+ ### Changed
20
+
21
+ - Docs counts refreshed after the audit and the Mistral fix: **24 providers / 251 live models** (was displaying a stale 228), README top-8 provider table regenerated from `sources.js`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-coding-models",
3
- "version": "0.5.92",
3
+ "version": "0.5.93",
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",
package/sources.js CHANGED
@@ -203,21 +203,28 @@ export const githubModels = [
203
203
  // ๐Ÿ“– Mistral La Plateforme source - https://console.mistral.ai
204
204
  // ๐Ÿ“– Experiment plan is free for evaluation/prototyping and exposes general + coding models.
205
205
  // ๐Ÿ“– Keep Codestral as a separate provider key for backward compatibility with existing configs.
206
+ // ๐Ÿ“– Fixed (2026-09-16): every id below re-verified against the live
207
+ // ๐Ÿ“– GET https://api.mistral.ai/v1/models on a real Experiment-plan key.
208
+ // ๐Ÿ“– The 2026-09-15 audit had rewritten the working ids into a date-stamped
209
+ // ๐Ÿ“– form that Mistral does not accept, so ALL nine entries returned
210
+ // ๐Ÿ“– 400 invalid_model and the whole provider was dead. Context windows now
211
+ // ๐Ÿ“– come from each model's `max_context_length` instead of a blanket 256k.
206
212
  export const mistral = [
207
213
  // โ”€โ”€ S+ tier โ€” SWE-bench Verified โ‰ฅ70% โ”€โ”€
208
- ['mistral-large-3-25-12', 'Mistral Large 3', 'S+', '70.0%', '256k'], // Fixed ID (2026-09-15): mistral-large-2512 โ†’ mistral-large-3-25-12 (docs.mistral.ai/models)
209
- ['mistral-medium-3-5-26-04', 'Mistral Medium 3.5', 'S+', '77.6%', '256k'], // Fixed ID (2026-09-15): mistral-medium-3-5 โ†’ mistral-medium-3-5-26-04 (docs.mistral.ai/models)
214
+ ['mistral-medium-3-5', 'Mistral Medium 3.5', 'S+', '77.6%', '256k'], // Fixed (2026-09-16): mistral-medium-3-5-26-04 โ†’ mistral-medium-3-5 (live /v1/models, ctx 262144)
210
215
  // Removed (2026-08-13): devstral-2512 (Devstral 2) โ€” Mistral deprecation, full retirement 2026-07-31
211
- ['zai-glm-5-2', 'Z.ai GLM 5.2', 'S+', '82.8%', '1M'],
216
+ // Removed (2026-09-16): mistral-large-3-25-12 (Mistral Large 3) โ€” no `large` model exists in the live catalog at all
217
+ // Removed (2026-09-16): zai-glm-5-2 (Z.ai GLM 5.2) โ€” absent from /v1/models; a direct call returns 403 tier_not_allowed (paid tier only), so it never belonged in a free catalog
218
+ // โ”€โ”€ A+ tier โ”€โ”€
219
+ ['magistral-medium-latest', 'Magistral Medium', 'A+', '-', '256k'], // Fixed (2026-09-16): magistral-medium-1-2-25-09 โ†’ magistral-medium-latest (only the -latest alias exists upstream)
212
220
  // โ”€โ”€ A tier โ€” SWE-bench Verified 40โ€“50% โ”€โ”€
213
- ['mistral-small-4-0-26-03', 'Mistral Small 4', 'A', '48.0%', '256k'], // Fixed ID (2026-09-15): mistral-small-2603 โ†’ mistral-small-4-0-26-03 (docs.mistral.ai/models)
221
+ ['mistral-small-2603', 'Mistral Small 4', 'A', '48.0%', '256k'], // Fixed (2026-09-16): mistral-small-4-0-26-03 โ†’ mistral-small-2603 (live /v1/models, ctx 262144)
214
222
  // โ”€โ”€ B+ tier โ€” SWE-bench Verified 30โ€“35% โ”€โ”€
215
- ['ministral-3-14b-25-12', 'Ministral 3 14B', 'B+', '-', '256k'], // Fixed (2026-08-13): id 'ministral-3-14b-25-12' โ†’ 'ministral-14b-2512' (API model ID per Mistral docs JSON) // Fixed ID (2026-09-15): ministral-14b-2512 โ†’ ministral-3-14b-25-12 (docs.mistral.ai/models)
223
+ ['ministral-14b-2512', 'Ministral 3 14B', 'B+', '-', '256k'], // Fixed (2026-09-16): ministral-3-14b-25-12 โ†’ ministral-14b-2512 (live /v1/models, ctx 262144)
216
224
  // โ”€โ”€ B tier โ€” SWE-bench Verified 20โ€“30% โ”€โ”€
217
- ['ministral-3-8b-25-12', 'Ministral 3 8B', 'B', '-', '256k'], // Fixed (2026-08-13): id 'ministral-3-8b-25-12' โ†’ 'ministral-8b-2512' // Fixed ID (2026-09-15): ministral-8b-2512 โ†’ ministral-3-8b-25-12 (docs.mistral.ai/models)
218
- ['ministral-3-3b-25-12', 'Ministral 3 3B', 'B', '-', '256k'], // Fixed (2026-08-13): id 'ministral-3-3b-25-12' โ†’ 'ministral-3b-2512' // Fixed ID (2026-09-15): ministral-3b-2512 โ†’ ministral-3-3b-25-12 (docs.mistral.ai/models)
219
- ['mistral-small-creative-25-12', 'Mistral Small Creative (Labs)', 'B', '-', '256k'], // Added (2026-09-15) โ€” verified via live audit
220
- ['magistral-medium-1-2-25-09', 'Magistral Medium 1.2', 'A+', '-', '256k'], // Added (2026-09-15) โ€” verified via live audit
225
+ ['ministral-8b-2512', 'Ministral 3 8B', 'B', '-', '256k'], // Fixed (2026-09-16): ministral-3-8b-25-12 โ†’ ministral-8b-2512 (live /v1/models, ctx 262144)
226
+ ['ministral-3b-2512', 'Ministral 3 3B', 'B', '-', '128k'], // Fixed (2026-09-16): ministral-3-3b-25-12 โ†’ ministral-3b-2512; ctx 256k โ†’ 128k (max_context_length 131072)
227
+ // Removed (2026-09-16): mistral-small-creative-25-12 (Mistral Small Creative) โ€” absent from the live catalog
221
228
  ]
222
229
 
223
230
  // ๐Ÿ“– Mistral Codestral source - https://codestral.mistral.ai