free-coding-models 0.5.81 → 0.5.84
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 +25 -8
- package/bin/free-coding-models.js +20 -0
- package/changelog/v0.5.82.md +23 -0
- package/changelog/v0.5.83.md +22 -0
- package/changelog/v0.5.84.md +32 -0
- package/package.json +2 -2
- package/sources.js +167 -106
- package/src/core/benchmark.js +1 -1
- package/src/core/config.js +5 -0
- package/src/core/endpoint-installer.js +7 -2
- package/src/core/kilo.js +7 -0
- package/src/core/model-family.js +176 -0
- package/src/core/models-dev-index.js +1 -0
- package/src/core/opencode.js +14 -0
- package/src/core/ping.js +14 -4
- package/src/core/provider-key-tester.js +2 -1
- package/src/core/provider-metadata.js +11 -2
- package/src/core/quota-capabilities.js +1 -0
- package/src/core/router-daemon.js +47 -6
- package/src/core/router-dashboard.js +6 -1
- package/src/core/security.js +132 -65
- package/src/core/sync-set.js +1 -1
- package/src/core/tool-launchers.js +15 -5
- package/src/core/utils.js +88 -1
- package/src/data/benchmarks.json +6072 -216
- package/src/tui/app.js +7 -5
- package/src/tui/cli-help.js +4 -1
- package/src/tui/command-palette.js +3 -2
- package/src/tui/key-handler.js +172 -61
- package/src/tui/overlays.js +135 -94
- package/src/tui/render-helpers.js +42 -3
- package/src/tui/render-table.js +74 -4
- package/src/tui/theme.js +2 -0
- package/src/tui/tui-state.js +15 -1
- package/web/dist/assets/index-zdQvAW7c.js +40 -0
- package/web/dist/index.html +1 -1
- package/web/src/components/router/RouterView.jsx +38 -1
- package/web/dist/assets/index-Bb5I0K1-.js +0 -40
package/README.md
CHANGED
|
@@ -182,15 +182,16 @@ A large catalog of coding models from 20+ active providers, ranked by practical
|
|
|
182
182
|
| 11 | [ZAI](https://z.ai) | 7 | S | Free Flash models only | `ZAI_API_KEY` |
|
|
183
183
|
| 12 | [Scaleway](https://console.scaleway.com/iam/api-keys) | 15 | S+ → B | 1M free tokens | `SCALEWAY_API_KEY` |
|
|
184
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) |
|
|
185
|
+
| 14 | [OpenCode Zen](https://opencode.ai/zen) | 7 | S+ → B+ | Free with OpenCode account | Zen models ✨ |
|
|
186
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) |
|
|
187
|
+
| 16 | [LLM7](https://llm7.io) | 4 | S+ → A- | Shared free tier, optional free token | optional `LLM7_API_KEY` |
|
|
188
188
|
| 17 | [Routeway](https://routeway.ai) | 10 | S+ → C | Explicit `:free` zero-price models | `ROUTEWAY_API_KEY` |
|
|
189
189
|
| 18 | [Novita AI](https://novita.ai) | 0 | - | No zero-price models currently | `NOVITA_API_KEY` |
|
|
190
190
|
| 19 | [Ollama Cloud](https://ollama.com/pricing) | 17 | S+ → A | Free cloud usage with session/weekly limits | `OLLAMA_API_KEY` |
|
|
191
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
192
|
| 21 | [SiliconFlow](https://cloud.siliconflow.cn/account/ak) | 3 | A → B+ | 3 models @ $0, 1000 RPM (phone SMS required) | `SILICONFLOW_API_KEY` |
|
|
193
193
|
| 22 | [Requesty](https://app.requesty.ai/api-keys) | 12 | S+ → C | 200 req/day free, no card (4x OpenRouter) | `REQUESTY_API_KEY` |
|
|
194
|
+
| 23 | [OrcaRouter](https://www.orcarouter.ai) | 3 | S+ → A+ | Free Hacker tier · 3 $-0 models, zero token markup | `ORCAROUTER_API_KEY` |
|
|
194
195
|
|
|
195
196
|
> **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
197
|
> **SiliconFlow & Requesty** : integrations verifiees le 2026-08-24 via `/v1/models` live et docs officielles, free tiers recurrents confirmes sans Pollen.
|
|
@@ -294,6 +295,9 @@ Press **`G`** to cycle **Auto → Dark → Light**. Recolors the full interface
|
|
|
294
295
|
| **`;`** | Open the **Playground** chat overlay (chat with the FCM router) |
|
|
295
296
|
| **`Ctrl+A`** | Run an AI Speed Test for the selected model |
|
|
296
297
|
| **`Ctrl+U`** | Run the Global AI Speed Test (real provider requests) |
|
|
298
|
+
| **`Shift+P`** | Re-probe failed rows only (auth fail / 429 / 404 / timeout) - no whole-list rescan |
|
|
299
|
+
| **`Ctrl+Shift+P`** | Probe all configured models (404/410 check, auto-hides broken ones) |
|
|
300
|
+
| **`Space`** | Expand the selected row: 2-line detail with provider, endpoint URL and the full model ID (press again or move the cursor to collapse) |
|
|
297
301
|
| `R/S/C/M/O/L/A/H/V/B/U` | Sort by Rank / SWE / ContexT / Model / Origin / Last ping / Avg ping / Health / Verdict / staBility / Uptime |
|
|
298
302
|
| `W` | Sort by real-world score (`Real` column — see [Runtime telemetry](#-runtime-telemetry-real-world-scores)) |
|
|
299
303
|
| `Shift+W` | Open the Runtime Report overlay (per-model breakdown + recent calls) |
|
|
@@ -413,6 +417,7 @@ services:
|
|
|
413
417
|
FREE_CODING_MODELS_TELEMETRY: "0"
|
|
414
418
|
FCM_HOST: "0.0.0.0"
|
|
415
419
|
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY:-}
|
|
420
|
+
ORCAROUTER_API_KEY: ${ORCAROUTER_API_KEY:-}
|
|
416
421
|
volumes:
|
|
417
422
|
- fcm-data:/home/fcm
|
|
418
423
|
volumes:
|
|
@@ -564,7 +569,7 @@ On first start the daemon auto-creates a `fast-coding` set from your configured
|
|
|
564
569
|
| 🟠 **Auth error** | 401/403 — your API key is wrong for this model |
|
|
565
570
|
| ⚪ **Deprecated** | Removed from the catalog — will be replaced |
|
|
566
571
|
|
|
567
|
-
**3. Failover order** — models are tried in priority order; a `Recovering` / `Down` / `Auth error` model is skipped and the request goes to the next healthy one. If *all* fail, you get a `503` with a `models_tried` list in the body for debugging.
|
|
572
|
+
**3. Failover order (family preserving)** — models are tried in priority order; a `Recovering` / `Down` / `Auth error` model is skipped and the request goes to the next healthy one. When a model fails, the router first looks for the **same model family on another provider** (e.g. `nvidiaNim/deepseek-v4-pro` down → `sambanova/DeepSeek-V3.1` next), so your coding assistant keeps the same model behaviour mid-conversation instead of silently switching to a different family. If no same-family alternative is healthy, it falls back to the plain priority order. Families covered: Claude, DeepSeek, Gemini, GPT, Nemotron, Llama, MiniMax, Qwen, Kimi, GLM, Mistral, OpenAI o-series. The toggle lives on the Router Dashboard's set panel (**Family failover: on/off**, on by default, stored per set as `familyFailover`), and family hops are tagged `family` in the request log of both the TUI and Web dashboard. If *all* fail, you get a `503` with a `models_tried` list in the body for debugging.
|
|
568
573
|
|
|
569
574
|
**4. Auto-heal (on by default)** — at daemon start, any model in `Auth error` or `Deprecated` is swapped for a working alternative (same provider first, then cross-provider). The first time you manually add/remove/reorder a model, auto-heal switches off and your choices are preserved — so a new user with a half-broken key set lands on a usable default set by the time the dashboard renders.
|
|
570
575
|
|
|
@@ -679,6 +684,7 @@ Flags combine freely in any order. Run `free-coding-models --help` to print the
|
|
|
679
684
|
| `--check-drift` | Diff `sources.js` against `models.dev`; exit 1 on mismatch |
|
|
680
685
|
| `--no-telemetry` | Disable anonymous telemetry for this run |
|
|
681
686
|
| `--config-dir <dir>` | Store `config.json` + `backups/` in `<dir>` (e.g. `--config-dir ~/.config/free-coding-models`) |
|
|
687
|
+
| `--fix-permissions` / `--yes` / `-y` | Auto-fix insecure config file permissions (chmod 600) without prompting; never asked on piped stdin, daemon, web, or `--json` runs |
|
|
682
688
|
|
|
683
689
|
**Tool launchers** — start the TUI pre-configured for a tool, then `Enter` writes the model into that tool's config and launches it:
|
|
684
690
|
|
|
@@ -902,6 +908,8 @@ A: Yes — see [`sources.js`](./sources.js) for the model catalog format.
|
|
|
902
908
|
<td align="center" width="120"><a href="https://github.com/Muhammad95959"><img src="https://avatars.githubusercontent.com/u/75130655?v=4&s=80" width="80" height="80" style="border-radius:50%" alt="Muhammad95959"></a></td>
|
|
903
909
|
<td align="center" width="120"><a href="https://github.com/FaintFlower"><img src="https://avatars.githubusercontent.com/u/310248465?v=4&s=80" width="80" height="80" style="border-radius:50%" alt="FaintFlower"></a></td>
|
|
904
910
|
<td align="center" width="120"><a href="https://github.com/lehneres"><img src="https://avatars.githubusercontent.com/u/7437288?v=4&s=80" width="80" height="80" style="border-radius:50%" alt="lehneres"></a></td>
|
|
911
|
+
<td align="center" width="120"><a href="https://github.com/ia-S-on"><img src="https://avatars.githubusercontent.com/u/200600946?v=4&s=80" width="80" height="80" style="border-radius:50%" alt="ia-S-on"></a></td>
|
|
912
|
+
<td align="center" width="120"><a href="https://github.com/bangla24bdrang-lab"><img src="https://avatars.githubusercontent.com/u/321290409?v=4&s=80" width="80" height="80" style="border-radius:50%" alt="bangla24bdrang-lab"></a></td>
|
|
905
913
|
</tr>
|
|
906
914
|
<tr>
|
|
907
915
|
<td align="center"><a href="https://github.com/vava-nessa"><sub><b>vava-nessa</b></sub></a></td>
|
|
@@ -917,18 +925,26 @@ A: Yes — see [`sources.js`](./sources.js) for the model catalog format.
|
|
|
917
925
|
<td align="center"><a href="https://github.com/Muhammad95959"><sub><b>Muhammad95959</b></sub></a></td>
|
|
918
926
|
<td align="center"><a href="https://github.com/FaintFlower"><sub><b>FaintFlower</b></sub></a></td>
|
|
919
927
|
<td align="center"><a href="https://github.com/lehneres"><sub><b>lehneres</b></sub></a></td>
|
|
928
|
+
<td align="center"><a href="https://github.com/ia-S-on"><sub><b>ia-S-on</b></sub></a></td>
|
|
929
|
+
<td align="center"><a href="https://github.com/bangla24bdrang-lab"><sub><b>bangla24bdrang-lab</b></sub></a></td>
|
|
920
930
|
</tr>
|
|
921
931
|
<tr>
|
|
922
|
-
<td align="center" colspan="
|
|
932
|
+
<td align="center" colspan="15"><sub>🛡️ <b>fan92rus</b> — Windows path traversal fix (<code>path.sep</code>)</sub></td>
|
|
923
933
|
</tr>
|
|
924
934
|
<tr>
|
|
925
|
-
<td align="center" colspan="
|
|
935
|
+
<td align="center" colspan="15"><sub>📁 <b>Muhammad95959</b> — <code>--config-dir</code> flag & XDG support</sub></td>
|
|
926
936
|
</tr>
|
|
927
937
|
<tr>
|
|
928
|
-
<td align="center" colspan="
|
|
938
|
+
<td align="center" colspan="15"><sub>⭐ <b>FaintFlower</b> — Star History chart mirror fix</sub></td>
|
|
929
939
|
</tr>
|
|
930
940
|
<tr>
|
|
931
|
-
<td align="center" colspan="
|
|
941
|
+
<td align="center" colspan="15"><sub>🚀 <b>lehneres</b> — Proxmox VE installation scripts</sub></td>
|
|
942
|
+
</tr>
|
|
943
|
+
<tr>
|
|
944
|
+
<td align="center" colspan="15"><sub>🌩️ <b>ia-S-on</b> — Cloudflare <code>{account_id}</code> env resolution in launch paths</sub></td>
|
|
945
|
+
</tr>
|
|
946
|
+
<tr>
|
|
947
|
+
<td align="center" colspan="15"><sub>🐬 <b>bangla24bdrang-lab</b> — OrcaRouter provider integration</sub></td>
|
|
932
948
|
</tr>
|
|
933
949
|
</table>
|
|
934
950
|
|
|
@@ -969,8 +985,9 @@ Curated resources kept **outside** the active CLI catalog — IDE extensions, co
|
|
|
969
985
|
|
|
970
986
|
| Provider | Free limits | Notable models |
|
|
971
987
|
|----------|-------------|----------------|
|
|
988
|
+
| [OrcaRouter](https://www.orcarouter.ai) | Free Hacker tier, zero token markup, 3 API keys | DeepSeek V4 Flash (Free), Tencent Hy3 (Free), Qwen3.8 27B (Free) |
|
|
972
989
|
| [OpenRouter](https://openrouter.ai/keys) | 50 req/day, 1K/day with $10 purchase | Qwen3-Coder, Tencent HY3, Laguna, Gemma 4 |
|
|
973
|
-
| [Google AI Studio](https://aistudio.google.com/apikey) | Varies by Gemini model and region | Gemini 3.
|
|
990
|
+
| [Google AI Studio](https://aistudio.google.com/apikey) | Varies by Gemini model and region | Gemini 3.8 Flash, Gemini 2.5 Pro |
|
|
974
991
|
| [NVIDIA NIM](https://build.nvidia.com) | ~40 RPM | MiniMax M2.7, GLM 5.1, Kimi K2.6 |
|
|
975
992
|
| [GitHub Models](https://models.github.ai) | Depends on GitHub/Copilot tier | GPT-4.1, DeepSeek V3, Llama 4 |
|
|
976
993
|
| [Groq](https://console.groq.com/keys) | 1K–14.4K req/day (model-dependent) | Llama 3.3 70B, Llama 4 Scout, GPT-OSS |
|
|
@@ -37,6 +37,7 @@ import { ensureFavoritesConfig } from '../src/core/favorites.js';
|
|
|
37
37
|
import { buildCliHelpText } from '../src/tui/cli-help.js';
|
|
38
38
|
import { ALT_LEAVE } from '../src/core/constants.js';
|
|
39
39
|
import { enforceMandatoryStartupUpdate, isPackageDevMode } from '../src/core/updater.js';
|
|
40
|
+
import { checkConfigSecurity } from '../src/core/security.js';
|
|
40
41
|
import { runApp } from '../src/tui/app.js';
|
|
41
42
|
|
|
42
43
|
// Global error handlers to ensure terminal is restored if something crashes catastrophically
|
|
@@ -155,6 +156,25 @@ async function main() {
|
|
|
155
156
|
} catch {}
|
|
156
157
|
}
|
|
157
158
|
|
|
159
|
+
// 📖 Config security check (issue #173): the insecure-permission warning and its
|
|
160
|
+
// 📖 "Fix permissions automatically?" prompt must fully resolve BEFORE any surface
|
|
161
|
+
// 📖 takes over the terminal. It used to run un-awaited inside runApp, so the TUI
|
|
162
|
+
// 📖 covered the prompt (invisible on Windows) and the app looked frozen.
|
|
163
|
+
// 📖 Daemon / web dashboard / JSON surfaces pass promptAllowed=false so at most a
|
|
164
|
+
// 📖 warning + manual hint goes to stderr, and the daemon can never hang on a prompt.
|
|
165
|
+
// 📖 --fix-permissions / --yes / -y auto-applies chmod 600 (best-effort on Windows).
|
|
166
|
+
const promptAllowed = !cliArgs.webMode
|
|
167
|
+
&& !cliArgs.jsonMode
|
|
168
|
+
&& !cliArgs.daemonMode
|
|
169
|
+
&& !cliArgs.daemonBackgroundMode
|
|
170
|
+
&& !cliArgs.daemonStopMode
|
|
171
|
+
&& !cliArgs.daemonStatusMode;
|
|
172
|
+
try {
|
|
173
|
+
await checkConfigSecurity({ autoFix: cliArgs.fixPermissionsMode, promptAllowed });
|
|
174
|
+
} catch {
|
|
175
|
+
// 📖 A security-check failure must never block the app from starting.
|
|
176
|
+
}
|
|
177
|
+
|
|
158
178
|
// 📖 Standalone web dashboard: same full-catalog ping UI as the TUI, served
|
|
159
179
|
// 📖 locally with Socket.IO/SSE/REST realtime updates.
|
|
160
180
|
if (cliArgs.webMode) {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog v0.5.82 - 2026-09-05
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
- 🐬 **New provider: OrcaRouter** (PR #176 by @bangla24bdrang-lab) — zero-markup AI gateway, Free Hacker tier, 3 $-0 models (DeepSeek V4 Flash Free S+, Tencent Hy3 Free S, Qwen3.8 27B Free A+), all verified live on `api.orcarouter.ai/v1/models`. Wired across every surface: TUI, router daemon, benchmark, sync-set, Kilo/OpenCode launchers, key tester, docs and docker-compose (`ORCAROUTER_API_KEY`).
|
|
5
|
+
- 📚 **OpenRouter catalog refresh** (PR #178 by @Muhammad95959): 9 new free models verified live at $0 — MiniMax M2.7, MiniMax M3, GLM-5.2, Nemotron 3 Super ctx fix, Ling 3.0 Flash Fin, Inkling, Inkling Small, Dots 3 Note Preview.
|
|
6
|
+
- 🏗️ **NVIDIA NIM**: Muse Glimmer 30B + Kimi K3 added; Nemotron Nano 30B id fixed to `nvidia/nemotron-nano-3-30b-a3b` (old id confirmed 410 Gone live).
|
|
7
|
+
- 🇨🇳 **SambaNova**: MiniMax M3 added (verified live via `/v1/models`).
|
|
8
|
+
- ✨ **OpenCode Zen**: Laguna S 2.1 Free restored and Ling 3.0 Flash Fin Free added — both present on the live `/v1/models` (66 models checked).
|
|
9
|
+
- 🌐 **Google AI Studio**: Gemini 3.8 Flash added (free tier confirmed on the official pricing page).
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
- ☁️ **Cloudflare `{account_id}` in launch paths** (PR #170 by @ia-S-on): the placeholder is now resolved from `CLOUDFLARE_ACCOUNT_ID` in ZCode/Goose config writes and pings (both `{account_id}` and `{$CLOUDFLARE_ACCOUNT_ID}` forms supported, URL-encoded). Fixes 404/400 when launching Cloudflare models in external tools.
|
|
13
|
+
- 🚀 **Release workflow** (PR #177 by @Muhammad95959): publishing steps are skipped cleanly when the `NPM_TOKEN` secret is missing (fork-friendly).
|
|
14
|
+
- 🔍 **LLM7 catalog corrected against the live API**: reverted 9 entries from PR #178 that are paid (`tier=pro`, `usage_based_only`) or nonexistent — glm-5.3, glm-5.3-flash, gemini-3.5-flash-low, gpt-5.4, gpt-5.4-mini, gpt-5.5, gpt-5.6-sol, grok-4.5, grok-4.6. Fixed `gpt-oss:20b` → `gpt-oss` (live ctx 131k). Removed gemini-3.1-flash-lite (now paid). The free turbo tier is exactly: minimax-m2.7, gpt-oss, mistral-Nemo-Instruct-2407, codestral-latest.
|
|
15
|
+
- 🇫🇷 **Scaleway catalog**: reverted 3 unverified removals — Devstral 2 123B, Pixtral 12B and Qwen3 235B are all still Serverless per the official docs (checked 2026-09-05); dropped the false gemma-3-27b-it EOL claim (still served, 40k ctx).
|
|
16
|
+
- 🌐 **Google AI catalog**: restored gemini-2.5-pro and gemini-3-flash-preview (free tier confirmed on the official pricing page); kept the gemini-3.1-pro-preview removal (free tier really is "Not available"); removed gemini-2.0-flash (not on the pricing page).
|
|
17
|
+
- ⚙️ **Cerebras**: removed MiniMax M3 (HTTP 404 "Model does not exist" on live ping). **OpenCode Zen**: removed hy3-free (absent from live `/v1/models`).
|
|
18
|
+
- 🖥️ **Website catalog mirror synced**: `website/src/_fcm-sources/sources.js` had drifted behind main (missing the NIM cleanup, the Cloudflare URL fix and OrcaRouter) — it is now an exact mirror of `sources.js`.
|
|
19
|
+
- 🤖 dependabot: `dependabot/fetch-metadata` v2 → v3 (PR #163).
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- 📖 README + website docs: provider counts updated (OpenCode Zen 7, LLM7 4), Google AI notable models refreshed.
|
|
23
|
+
- 🙏 Two new contributors: @ia-S-on and @bangla24bdrang-lab. Welcome!
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Changelog v0.5.83 - 2026-09-05
|
|
2
|
+
|
|
3
|
+
Three community issues fixed in one pass, all focused on day-to-day TUI reliability: a hidden Windows prompt, probe ergonomics, and the command palette on small server consoles.
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- 🔧 `--fix-permissions` (also `--yes` / `-y`): fix insecure config file permissions (chmod 600) without any prompt, ideal for scripts and CI (#173)
|
|
8
|
+
- ⌨️ Shift+P: re-probe ONLY the models currently failing (404 / 410 / 429 / 401...) instead of re-testing the whole list, for quick rescans after an auth blip (#168)
|
|
9
|
+
- ⌨️ Space: expand the selected row into a 2-line detail card showing provider, key status, endpoint URL, full model id, tier, SWE score, context window, last ping and HTTP code. Space again or moving the cursor collapses it (#168)
|
|
10
|
+
- 🖥️ Command palette degrades gracefully: compact layout on small screens, plain-text rendering when the terminal has no color support (NO_COLOR, TERM=dumb, basic KVM consoles) (#169)
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- 🪟 Windows: the config permission security warning and its "Fix permissions automatically? (Y/n)" prompt were rendered behind the TUI, making the app look frozen; the check now runs and resolves BEFORE the interactive UI starts (#173)
|
|
15
|
+
- 💥 TUI crash during the 404 probe: a progress-bar accounting bug (RangeError on a negative repeat) could kill the whole process mid-probe (#168)
|
|
16
|
+
- 🎛️ Ctrl+Shift+P was unreachable: the palette intercepted it first; the binding now works and palette commands can never take the TUI down via an unhandled rejection (#168)
|
|
17
|
+
- 📐 Command palette rows overflowed up to 47 columns past the terminal edge on 80-column consoles (truncated mid-word, garbled right border); rows are now composed under a strict ANSI-aware width budget, the panel clamps to any terminal size down to 40x12, and margins are actively cleared (#169)
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- 📖 Help overlay, README and AGENTS.md key reference updated to document Shift+P, Ctrl+Shift+P and Space
|
|
22
|
+
- 🧹 website: strict-null fixes in the changelog loader (first batch of pre-existing typecheck errors)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Changelog v0.5.84 - 2026-09-05
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
|
|
5
|
+
- Full catalog audit of all 23 providers against official docs and live model APIs (2026-09-05): 28 removals, 42 additions, 37 config fixes, 147 models confirmed unchanged. Catalog goes from 208 to 225 models.
|
|
6
|
+
|
|
7
|
+
Provider by provider:
|
|
8
|
+
|
|
9
|
+
- **Kilo**: the free gateway exploded from 2 to 19 models. Added MiniMax M3 (80.5% SWE-bench Verified, 1M ctx), Thinking Machines Inkling + Inkling Small (1M ctx), StepFun Step 3.7 Flash, Poolside Laguna S 2.1, NVIDIA Nemotron 3 Ultra + 3 Super + 3.5 Lightning, Cohere North Mini Code, Dots3-Note Preview, MiniMax M2.7 and the OpenRouter free router alias. `kilo-auto/small` is now paid and was removed.
|
|
10
|
+
- **NVIDIA NIM**: removed models that are gone or deprecated (gpt-oss-120b API deprecated 2026-09-02, kimi-k2.6 404, nemotron-nano-3, llama-3.2-11b-vision without endpoint). Added DeepSeek V4 Pro (1M ctx) and Nemotron 3.5 Lightning 30B. kimi-k3 and nemotron-3-super now serve 1M contexts. MiniMax M3 is kept with a deprecation notice (NVIDIA shutdown 2026-09-08).
|
|
11
|
+
- **Scaleway**: applied the July 2026 EOL wave. Removed Devstral 2, Gemma 3 27B and Holo2 (EOL already passed). Qwen3 Coder 30B and Pixtral 12B stay listed with an EOL 2026-10-01 warning since they still answer. The service now bills per token with the first 1M tokens free.
|
|
12
|
+
- **Routeway**: the free catalog was gutted from 13 to 4 models. Kept DeepSeek V4 Flash, MiniMax M2.7 and Muse Glimmer 30B (contexts slashed to 42k/42k/131k) and added Kimi K2.6 as the only new free model. 10 free variants are now paid-only.
|
|
13
|
+
- **Cloudflare Workers AI**: kimi-k2.6, kimi-k2.7-code and glm-5.2 moved behind Workers Paid billing and were removed from the free list. Fixed 7 inflated context windows (docs say 24k to 256k, not 128k). Added qwen3.8-27b (262k ctx) as the only new free coder-usable model.
|
|
14
|
+
- **Qwen / Model Studio**: added the new Qwen3.8 family (qwen3.8-max, qwen3.8-flash, qwen3.8-2.4t-a95b, qwen3.8-27b), each with 1M context and a 1M-token international free quota. All 23 existing models verified unchanged.
|
|
15
|
+
- **Z.ai**: added the new coding-plan flagship GLM-5.3 (1M ctx, released 2026-08-18). Filled in official SWE-bench Verified scores for GLM-4.7 (73.8%) and GLM-4.6 (68.0%).
|
|
16
|
+
- **Mistral**: the three Ministral 3 models now serve 256k context (was 128k). Added Z.ai GLM 5.2 (1M ctx, public preview on La Plateforme).
|
|
17
|
+
- **Groq**: added qwen/qwen3.8-27b preview. Fixed gpt-oss-20b SWE-bench score to the official 60.7%. None of the catalog models are on the deprecation list.
|
|
18
|
+
- **Cerebras**: gemma-4-31b was pulled from free public endpoints on 2026-09-03 and is replaced by qwen-3.8-27b (64k free ctx).
|
|
19
|
+
- **Pollinations**: added 3 anonymous-free models: glm-5.3 (1M ctx), Kimi K2.6 (80.2%) and MiniMax M3 (80.5%).
|
|
20
|
+
- **SiliconFlow**: DeepSeek-R1-Distill-Qwen-7B was delisted. Added DeepSeek-R1-0528-Qwen3-8B, Qwen3.5-4B, Qwen2.5-7B-Instruct and GLM-4-9B-0414. Both surviving models actually serve 131k context, not 32k.
|
|
21
|
+
- **OpenRouter**: fixed 7 wrong context windows against the live API (GLM-5.2 is 256k, not 1M; Inkling models are 1M; MiniMax M2.7 is 192k). Added ling-3.0-flash-sante:free.
|
|
22
|
+
- **Ollama Cloud**: added glm-5.3 and glm-5.3-flash. Fixed context windows for glm-5.2 (976k), minimax-m3 (512k) and gemma4:31b (256k).
|
|
23
|
+
- **Novita**: the empty free catalog is restored with 2 time-limited $0/M models: Ling 3.0 Flash Fin and Ling 3.0 Flash Sante (256k ctx, coding + function calling).
|
|
24
|
+
- **SambaNova**: MiniMax-M3 context is now 1M tokens (was 196k).
|
|
25
|
+
- **Codestral**: context fixed to 256k. Still free via Mistral's Experiment tier (~1B tokens/month).
|
|
26
|
+
- **Requesty**: fixed the model id typo `nvidia/nemotron-nano-3-30b-a3b` to the real `nvidia/nemotron-3-nano-30b-a3b`.
|
|
27
|
+
- **OVHcloud**: added 2 free Qwen3Guard moderation models (beta) and fixed Qwen2.5-VL-72B context to 32k. The chat LLMs are now paid per Mtoken but stay listed for now since they still answer.
|
|
28
|
+
- **googleai, llm7, orcarouter**: verified live and unchanged, nothing to update.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Tests: the t8 family-failover tests now use `openai/gpt-oss-20b` as NVIDIA primary because gpt-oss-120b was removed from the NVIDIA catalog (deprecated 2026-09-02). The NVIDIA test-model discovery expectations match the new catalog head.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.84",
|
|
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",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
],
|
|
59
59
|
"scripts": {
|
|
60
60
|
"start": "node bin/free-coding-models.js",
|
|
61
|
-
"test": "node --test test/test.js test/fcm-agent-core.test.js test/patch-openclaw.test.js test/provider-metadata.test.js test/config-permission-hint.test.js test/probe-cache.test.js test/passive-quota.test.js test/runtime-telemetry.test.js test/extended-benchmarks.test.js test/models-dev.test.js test/model-merger.test.js test/config-dir.test.js test/cache-dir.test.js",
|
|
61
|
+
"test": "node --test test/test.js test/fcm-agent-core.test.js test/patch-openclaw.test.js test/provider-metadata.test.js test/config-permission-hint.test.js test/probe-cache.test.js test/passive-quota.test.js test/runtime-telemetry.test.js test/extended-benchmarks.test.js test/models-dev.test.js test/model-merger.test.js test/config-dir.test.js test/cache-dir.test.js test/model-family.test.js",
|
|
62
62
|
"test:extended-benchmarks": "node --test test/extended-benchmarks.test.js",
|
|
63
63
|
"test:models-dev": "node --test test/models-dev.test.js",
|
|
64
64
|
"update:benchmarks": "node scripts/update-benchmarks.mjs",
|