free-coding-models 0.5.45 → 0.5.47
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 +38 -9
- package/changelog/v0.5.46.md +9 -0
- package/changelog/v0.5.47.md +23 -0
- package/package.json +1 -1
- package/sources.js +3 -13
- package/web/dist/assets/{index-CPFddR0N.js → index-uSCUv4IP.js} +2 -2
- package/web/dist/index.html +1 -1
package/README.md
CHANGED
|
@@ -468,7 +468,7 @@ When a tool mode is active (via `Z`), models incompatible with that tool are hig
|
|
|
468
468
|
|
|
469
469
|
## π Pi Extension — FCM-Pi ⚠️ BETA
|
|
470
470
|
|
|
471
|
-
**FCM-Pi** is a native [Pi coding agent](https://pi.dev) extension that integrates `free-coding-models` directly into your Pi session. It
|
|
471
|
+
**FCM-Pi** is a native [Pi coding agent](https://pi.dev) extension that integrates `free-coding-models` directly into your Pi session. It stays silent by default, scans only when you run `/fcm`, and lets you explicitly hot-swap models mid-session.
|
|
472
472
|
|
|
473
473
|
> **BETA** — The extension is under active development and not yet published to npm. Install via local path only.
|
|
474
474
|
>
|
|
@@ -492,16 +492,16 @@ Then restart Pi. The extension loads automatically.
|
|
|
492
492
|
|
|
493
493
|
| Feature | Description |
|
|
494
494
|
|---------|-------------|
|
|
495
|
-
| **
|
|
496
|
-
| **
|
|
497
|
-
| **
|
|
498
|
-
| **10-minute disk cache** | Results are cached to `~/.pi/agent/fcm-cache.json`
|
|
499
|
-
| **
|
|
495
|
+
| **Silent startup** | No scan, no footer noise, and no automatic model switch on Pi boot or `/resume` |
|
|
496
|
+
| **Manual scan** | `/fcm` pings ~30 candidate models in parallel and waits for your explicit selection |
|
|
497
|
+
| **Temporary progress scan** | The Pi status bar shows live scan progress only while probing/benchmarking, then hides again |
|
|
498
|
+
| **10-minute disk cache** | Results are cached to `~/.pi/agent/fcm-cache.json` for faster diagnostics and lists |
|
|
499
|
+
| **Error-triggered picker** | If a request fails (HTTP 4xx/5xx), FCM reopens the picker and marks the failed model `🔴 BUGGED` |
|
|
500
500
|
| **Daemon integration** | If the FCM router daemon is running (`free-coding-models --daemon-bg`), scan results are fetched instantly from its cache |
|
|
501
501
|
|
|
502
502
|
### Scan progress display
|
|
503
503
|
|
|
504
|
-
During `/fcm
|
|
504
|
+
During `/fcm`, the Pi footer status shows:
|
|
505
505
|
|
|
506
506
|
```
|
|
507
507
|
⠸ Probing: Kimi K2.6 [Nvidia], Step 3.5 Flash [Stepfun] — 47% (14/30)
|
|
@@ -519,7 +519,7 @@ During `/fcm` or on session start, the Pi footer status shows:
|
|
|
519
519
|
|---------|-------------|
|
|
520
520
|
| `/fcm` | Re-scan and pick a model interactively from the top 10 ranked |
|
|
521
521
|
| `/fcm-list` | Display a ranked table of top 20 available models (SWE / Latency / TPS / Provider) |
|
|
522
|
-
| `/fcm-router` |
|
|
522
|
+
| `/fcm-router` | Explicitly connect Pi to the local FCM Smart Router daemon |
|
|
523
523
|
| `/fcm-status` | Show diagnostics: active model, last scan source, daemon state |
|
|
524
524
|
|
|
525
525
|
### Composite ranking
|
|
@@ -535,7 +535,7 @@ Models are ranked using a composite score:
|
|
|
535
535
|
|
|
536
536
|
### Context window limits
|
|
537
537
|
|
|
538
|
-
Cerebras free-tier API has a strict
|
|
538
|
+
Cerebras free-tier API has a strict **~8k total token limit** (prompt + tools + completion). Tiny-context models can pass a `hi` probe but fail real agent prompts, so FCM hides 8k Cerebras models from Pi/OpenCode pickers.
|
|
539
539
|
|
|
540
540
|
### Full documentation
|
|
541
541
|
|
|
@@ -543,6 +543,35 @@ See [`pi-extension/README.md`](./pi-extension/README.md) for the complete archit
|
|
|
543
543
|
|
|
544
544
|
---
|
|
545
545
|
|
|
546
|
+
## OpenCode Plugin — fcm-opencode ⚠️ BETA
|
|
547
|
+
|
|
548
|
+
`fcm-opencode` is the OpenCode adapter for the same FCM scanner/ranker used by FCM-Pi.
|
|
549
|
+
|
|
550
|
+
### Local install
|
|
551
|
+
|
|
552
|
+
```bash
|
|
553
|
+
mkdir -p ~/.config/opencode/plugins
|
|
554
|
+
ln -sf /Users/vava/Documents/GitHub/free-coding-models/opencode-plugin/index.js \
|
|
555
|
+
~/.config/opencode/plugins/fcm-opencode.js
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### Commands
|
|
559
|
+
|
|
560
|
+
| Command | Description |
|
|
561
|
+
|---------|-------------|
|
|
562
|
+
| `/fcm` | Run an explicit scan and list ranked choices without switching |
|
|
563
|
+
| `/fcm 1` | Switch OpenCode config to ranked model #1 |
|
|
564
|
+
| `/fcm best` | Switch OpenCode config to the best ranked model |
|
|
565
|
+
| `/fcm rescan` | Force a fresh scan |
|
|
566
|
+
| `/fcm status` or `/fcm-status` | Show plugin diagnostics |
|
|
567
|
+
| `/fcm router` or `/fcm-router` | Switch OpenCode config to the local FCM Smart Router daemon |
|
|
568
|
+
|
|
569
|
+
Startup is intentionally light: fresh cache first, daemon second, **no direct scan** unless you run `/fcm`.
|
|
570
|
+
|
|
571
|
+
See [`opencode-plugin/README.md`](./opencode-plugin/README.md) for details and limitations.
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
546
575
|
## ⌨️ TUI Keys
|
|
547
576
|
|
|
548
577
|
### Keyboard
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Changelog v0.5.46 - 2026-07-08
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
- **LLM7 catalog corrected against live `/v1/models` API.** The previous audit had added several models that are NOT free on LLM7. The live API shows that of LLM7's 12 models, only 2 are on the `turbo` (free, `noKeyNeeded`) tier; everything else — including the `claude-*` (Fable 5, Opus 4.8, Sonnet 5), `gpt-5.4` / `gpt-5.4-mini` / `gpt-5.5`, `glm-5.2`, `kimi-k2.6`, `deepseek-v4-flash`, and `minimax-m2.7` entries — are `pro` (usage-based paid) and were incorrectly listed as free.
|
|
5
|
+
- **Removed 10 non-free (pro) models from LLM7**, keeping only the two genuinely-free `turbo` models: `devstral-small-2:24b` (S / 68.0%) and `codestral-latest` (A / 40.0%). Total catalog: 257 → 247 models.
|
|
6
|
+
- Removed the `1.05M` context-window entries (gpt-5.5 / gpt-5.4) that were causing alignment drift; no `1.05M` remains in the catalog.
|
|
7
|
+
|
|
8
|
+
### Notes
|
|
9
|
+
- LLM7's free (`turbo`) tier now has only 2 coding models. The `llm7` provider remains `noKeyNeeded: true` and should only surface free models per the source-header rule ("Pro-tagged models from /v1/models are intentionally excluded").
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Changelog v0.5.47 - 2026-07-08
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
- **New BETA `fcm-opencode` plugin** — an OpenCode adapter that brings `free-coding-models` scans, routing, and provider injection into OpenCode. It reuses the exact same scan / ranking / API-key / daemon / model-safety code as `fcm-pi`, so provider fixes and safety filters stay in one place. Install via a local symlink (see `opencode-plugin/README.md`). Commands:
|
|
5
|
+
- `/fcm` — scan and list ranked choices **without switching**
|
|
6
|
+
- `/fcm 1` / `/fcm 2` / … — explicitly switch OpenCode config to ranked model #N
|
|
7
|
+
- `/fcm best` — explicitly switch to the best ranked model
|
|
8
|
+
- `/fcm rescan` — force a fresh scan
|
|
9
|
+
- `/fcm status` (or `/fcm-status`) — plugin diagnostics (cache age, daemon, active model)
|
|
10
|
+
- `/fcm router` (or `/fcm-router`) — explicitly switch OpenCode to the local FCM Smart Router daemon
|
|
11
|
+
- **New shared `pi-extension/lib/pi-model-config.js` module** — centralizes the Pi model safety policy so both adapters apply identical rules: `parseContextWindow` (`8k` / `128k` / `1M` → number), `getPiMaxTokens` (caps completions to leave prompt room), `isPiContextUsable` (hides tiny-context models that pass a probe but fail real agent prompts, e.g. 8k Cerebras), and `getPiReasoningFlag` (keeps OpenAI-compatible FCM models in non-thinking mode).
|
|
12
|
+
- **`runFcmScan({ mode })` now supports `auto`, `daemon`, and `direct` scan strategies.** OpenCode uses `daemon` at startup so direct probes never block boot.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- **FCM-Pi is now silent by default.** No startup scan, no footer noise, and no automatic model switch on Pi boot or `/resume`. Run `/fcm` to scan and pick a model explicitly.
|
|
16
|
+
- **Error-triggered picker replaces silent auto-failover.** When the active model returns HTTP 4xx/5xx, FCM reopens the picker and marks the failing model `🔴 BUGGED` instead of switching automatically — you stay in control of which model runs.
|
|
17
|
+
- **Pi scan-progress footer now shows the branded `> free-coding-models` badge** in the exact same green/white-on-black colours as the main TUI header logo, instead of scrolling live model names. The live `%` progress and `(completed/total)` counter stay beside it.
|
|
18
|
+
- **OpenCode startup is light by default:** fresh cache first, daemon second, no direct scan unless the user explicitly runs `/fcm`. Long probes never freeze OpenCode boot.
|
|
19
|
+
- **README updated** with a new `fcm-opencode` section and a refreshed FCM-Pi section reflecting the silent-by-default behaviour.
|
|
20
|
+
|
|
21
|
+
### Notes
|
|
22
|
+
- `fcm-pi` and `fcm-opencode` remain **BETA** and are installed via local path / symlink, not via the npm `free-coding-models` package.
|
|
23
|
+
- The full shared-core extraction into `packages/fcm-agent-core` / `packages/fcm-opencode` is still in progress (tracked in `.kandown/tasks/t2.md`). This release ships the working adapters and the extracted model-safety module ahead of that restructure.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.47",
|
|
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
|
@@ -404,20 +404,10 @@ export const kilo = [
|
|
|
404
404
|
// 📖 Free unauthenticated tier works with tight shared limits; optional free token at https://token.llm7.io
|
|
405
405
|
// 📖 Pro-tagged models from /v1/models are intentionally excluded.
|
|
406
406
|
export const llm7 = [
|
|
407
|
-
//
|
|
408
|
-
|
|
409
|
-
['kimi-k2.6', 'Kimi K2.6', 'S+', '80.2%', '240k'],
|
|
410
|
-
['claude-opus-4-8', 'Claude Opus 4.8', 'S+', '88.6%', '1M'],
|
|
411
|
-
['claude-sonnet-5', 'Claude Sonnet 5', 'S+', '-', '1M'],
|
|
412
|
-
['claude-fable-5', 'Claude Fable 5', 'S+', '95.0%', '1M'],
|
|
413
|
-
['gpt-5.5', 'GPT-5.5', 'S+', '88.7%', '1.05M'],
|
|
414
|
-
['gpt-5.4', 'GPT-5.4', 'S+', '80.0%', '1.05M'],
|
|
415
|
-
['glm-5.2', 'GLM 5.2', 'S+', '82.8%', '1M'],
|
|
416
|
-
// ── A tier — SWE-bench Verified 40–50% ──
|
|
407
|
+
// 📖 LLM7 live /v1/models: only `turbo` tier is free (noKeyNeeded). All `pro` models are usage-based paid.
|
|
408
|
+
// ── S tier — SWE-bench Verified 60–70% ──
|
|
417
409
|
['devstral-small-2:24b', 'Devstral Small 2', 'S', '68.0%', '255k'],
|
|
418
|
-
|
|
419
|
-
['minimax-m2.7', 'MiniMax M2.7', 'S+', '78.0%', '180k'],
|
|
420
|
-
// ── B+ tier — SWE-bench Verified 30–35% ──
|
|
410
|
+
// ── A tier — SWE-bench Verified 40–50% ──
|
|
421
411
|
['codestral-latest', 'Codestral Latest', 'A', '40.0%', '32k'],
|
|
422
412
|
]
|
|
423
413
|
|