free-coding-models logo

free-coding-models

Find the fastest free coding model in seconds.
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.

Works with: 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.

npm version Tests
node version license Join our Discord

```bash npm install -g free-coding-models free-coding-models ```

Then create a free account on one of the 24 providers to grab an API key.

Made with โค๏ธ and โ˜• by Vanessa Depraute (aka Vava-Nessa)

--- ## ๐Ÿ’ก Why this tool? 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? `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. Once you pick a model, FCM writes it directly into your coding tool's config and opens the tool, so you go from *"which model?"* to *"coding"* in under 10 seconds. | Surface | What it is | Docs | |---|---|---| | ๐ŸŽ›๏ธ **TUI** | The interactive terminal dashboard. The default: live ranking, pick + launch. | [docs/tui.md](./docs/tui.md) | | ๐ŸŒ **Web Dashboard** | Browser control center, shareable filtered views, Docker-ready. | [docs/web-dashboard.md](./docs/web-dashboard.md) | | ๐Ÿ”Œ **Agent Extensions** | OpenCode & Pi plugins: hot-swap models mid-session. | [Agent extensions](#-agent-extensions) | | ๐Ÿ”€ **Smart Model Router** | A local OpenAI-compatible daemon with auto-failover. | [docs/router.md](./docs/router.md) | Other highlights: AI Speed Test benchmarks (real completions, AI Latency + TPS), Smart Recommend (3-question wizard), a `Ctrl+P` Command Palette, a persistent 24h probe cache shared by every surface, live quota from response headers, real-world telemetry scores, models.dev enrichment with drift detection, and a tier scale based on SWE-bench Verified (S+ โ‰ฅ 70% down to C). Details: [docs/stability.md](./docs/stability.md). --- ## โšก Quick Start **โ‘  Install** (Node.js 18+, no native build, never needs sudo): ```bash npm install -g free-coding-models free-coding-models --help # prints every flag ``` **โ‘ก Grab one free API key.** One is enough to start; add more later with `P` inside the app: - **Groq** โ†’ [console.groq.com/keys](https://console.groq.com/keys) - **Cerebras** โ†’ [cloud.cerebras.ai](https://cloud.cerebras.ai) (lowest latency in the catalog) - **NVIDIA NIM** โ†’ [build.nvidia.com](https://build.nvidia.com) (biggest no-credit-card quota) **โ‘ข Launch & paste your key:** `free-coding-models`. First run prompts for keys (Enter skips), models ping in parallel, rows light up green โœ…. **โ‘ฃ Pick a model & launch your tool:** `โ†‘โ†“` navigate, `Enter` to write the model into your tool's config and launch it. Pre-target another tool from the CLI, or cycle live with `Z`: ```bash free-coding-models --goose --tier S # Goose, pre-filtered to S-tier only free-coding-models --crush --origin groq # Crush, Groq models only free-coding-models --fiable # print the single most reliable model and exit ``` **โ‘ค Go further:** - ๐ŸŒ Prefer a browser? `free-coding-models web` opens the [Web Dashboard](./docs/web-dashboard.md). - ๐Ÿ”€ Want one endpoint that never dies? `free-coding-models --daemon-bg` starts the [Smart Model Router](./docs/router.md). - ๐Ÿค– Live inside an agent? Install the [OpenCode plugin](./packages/fcm-opencode/README.md) or the [Pi extension](./packages/fcm-pi/README.md). --- ## ๐ŸŸข Providers **24 active providers / 228 live models**, sorted by live model count. Top 8: | Provider | Models | Best tier | Env var | |----------|--------|-----------|---------| | [Alibaba DashScope](https://modelstudio.console.alibabacloud.com) | 27 | S+ | `DASHSCOPE_API_KEY` | | [Ollama Cloud](https://ollama.com/settings/keys) | 19 | S+ | `OLLAMA_API_KEY` | | [OpenRouter](https://openrouter.ai/keys) | 19 | S+ | `OPENROUTER_API_KEY` | | [Cloudflare AI](https://dash.cloudflare.com) | 15 | S | `CLOUDFLARE_API_TOKEN` | | [Kilo](https://kilo.ai) | 14 | S+ | `KILO_API_KEY` | | [NVIDIA NIM](https://build.nvidia.com) | 13 | S+ | `NVIDIA_API_KEY` | | [Pollinations AI](https://enter.pollinations.ai) | 13 | S+ | `POLLINATIONS_API_KEY` | | [OVHcloud AI](https://endpoints.ai.cloud.ovh.net) | 12 | S+ | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` | > ๐Ÿ“– **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. > โš ๏ธ Health probes consume provider quota: FCM auto-pauses a provider on `429`, backs off exponentially per failing model, and shows a footer chip while a provider rests. Leave a key empty and anonymous liveness probes still work for most providers. --- ## ๐ŸŽ›๏ธ The Terminal UI (TUI) The TUI is the heart of FCM: a live, sortable table of every model with real latency, stability, verdict, and a one-key launch into your coding tool. Sorts are one letter (`R` rank, `S` SWE, `V` verdict, `B` stability...), filters are `T` (tier cycle), `D` (provider cycle), `E` (visibility cycle), and the essentials are: | Key | Action | |-----|--------| | `โ†‘โ†“` / `Enter` | Navigate / launch the selected model | | `Z` | Cycle target tool (OpenCode โ†’ OpenClaw โ†’ Crush โ†’ Goose โ†’ ...) | | `F` / `Y` | Favorite a model / toggle pinned favorites mode | | `Ctrl+A` / `Ctrl+U` | AI Speed Test on selected model / all visible models | | `Q` | Smart Recommend (3-question wizard, Top 3 picks) | | `Ctrl+P` | Command Palette (fuzzy search over every filter, sort and action) | | `;` | Playground chat with the router | | `Shift+P` / `Ctrl+Shift+P` | Re-probe failed rows / probe all models (404/410) | | `Space` | Expand the selected row (provider, endpoint URL, full model ID) | | `Shift+B` | Toggle broken-model visibility | | `G` / `P` / `I` / `N` | Theme / Settings / Help / Reset view | | `Ctrl+C` | Exit | Mouse support: click headers to sort, double-click a row to launch, right-click to favorite, scroll to navigate. > ๐Ÿ“– **Full key table, mouse reference and workflows:** [`docs/tui.md`](./docs/tui.md) ยท Stability score and columns: [`docs/stability.md`](./docs/stability.md) --- ## ๐ŸŒ The Web Dashboard A real-time browser control center for the same catalog: full filter/sort parity with the TUI, per-row benchmarks, favorites, Smart Recommend, a Router Dashboard, token usage analytics, and shareable URL deep-links (`?tier=S+&sort=verdict&origin=groq`). Start it with `free-coding-models web` (port 3333) or `free-coding-models --daemon` (dashboard + router API on port 19280). Runs headless in Docker (`ghcr.io/vava-nessa/free-coding-models`). > ๐Ÿ“– **Modes, Docker, Compose and all env vars** (`FCM_HOST`, `FCM_PORT`, `FCM_WEB_PORT`, `FCM_ROUTER_TOKEN`, `FCM_ALLOWED_ORIGINS`, `FCM_DISCORD_*_WEBHOOK`): [`docs/web-dashboard.md`](./docs/web-dashboard.md) --- ## ๐Ÿ”€ The Smart Model Router A local OpenAI-compatible daemon: point any coding tool at `http://localhost:19280/v1` with model `fcm` (key `fcm-local`) and FCM routes every request to the best available model in your active set. Adaptive health probes, per-model circuit breakers, family-preserving failover, auto-heal of broken sets, and a Playground chat to try it without configuring a tool. ```bash free-coding-models --daemon-bg # start free-coding-models --daemon-status # inspect free-coding-models --daemon-stop # stop ``` > ๐Ÿ“– **Full guide (probes, circuit breaker, failover, Playground, `--sync-set`, REST API):** [`docs/router.md`](./docs/router.md) ### ๐Ÿงช Router v2 engine (built in) The router daemon now runs the hardened v2 engine internally: content-validated failover (a 200 with empty or garbage output is a failure and fails over), quota-aware routing with `Retry-After` pauses, persisted circuit breakers with a DEGRADED warning state, per-request decision traces, an Anthropic `/v1/messages` endpoint, and "test via router" actions that exercise the real routing chain. Same command, same port, same endpoints - existing setups upgrade by updating the package. Open the TUI with `Shift+V` (or the "Router v2" entry in the Web Dashboard) to see the live fallback chain, per-request attempt chains and run pinned-model tests (`Ctrl+T`). Docs: [`docs/router-v2.md`](./docs/router-v2.md). --- ## ๐Ÿ“– CLI Flags Flags combine freely in any order. The most common: | Flag | Effect | |------|--------| | `--best` / `--premium` | Top tiers only / elite preset (S filter + verdict sort) | | `--tier ` | Filter by tier family | | `--origin ` | Filter by provider (e.g. `groq`) | | `--sort ` + `--asc` / `--desc` | Start sorted by a column (`rank`, `swe`, `verdict`, `stability`, ...) | | `--json` | Skip the TUI, print results as JSON (great with `jq`) | | `--fiable` | Wait 10s, print the single most reliable model, exit | | `--recommend` | Open Smart Recommend on startup | | `--hide-unconfigured` / `--show-unconfigured` | Control keyless models visibility | | `--ping-interval ` | Override the ping interval | | `--reprobe` / `--probe-ttl ` / `--show-broken` | Probe cache control | | `--check-drift` | Diff `sources.js` vs models.dev, exit 1 on mismatch | | `--config-dir ` | Custom config location | | `--fix-permissions` / `--yes` | Auto-fix config file permissions (chmod 600, NTFS ACLs via icacls on Windows) | | `--web` | Open the Web Dashboard instead of the TUI | | `--daemon` / `--daemon-bg` / `--daemon-status` / `--daemon-stop` | Smart Model Router lifecycle | | `--sync-set [name]` | Auto-populate a router set with the currently best models | | `--no-telemetry` | Disable anonymous telemetry for this run | | `--help` / `-h` | Full in-app help | **Tool launchers** (21): `--opencode` (default), `--openclaw`, `--crush`, `--goose`, `--aider`, `--kilo`, `--qwen`, `--openhands`, `--amp`, `--pi`, `--hermes`, `--continue`, `--cline`, `--xcode`, `--copilot`, `--forgecode`, `--zcode`, `--jcode`, `--caveman`, plus OpenCode Desktop / WebUI variants. > ๐Ÿ“– **Canonical full flag reference (every flag, verified against the parser):** [`docs/flags.md`](./docs/flags.md) ยท Tool-to-config mapping: [`docs/integrations.md`](./docs/integrations.md) --- ## ๐Ÿ”Œ Agent Extensions - **OpenCode plugin** (`fcm-opencode`, beta): `/fcm` scans and ranks, `/fcm 1` switches models, `/fcm rescan` forces a fresh scan. Install: [`packages/fcm-opencode/README.md`](./packages/fcm-opencode/README.md) - **Pi extension** (`fcm-pi`, beta): silent by default, `/fcm` re-scans and lets you pick, `/fcm-list` shows a ranked table, error-triggered picker on 4xx/5xx. Install: [`packages/fcm-pi/README.md`](./packages/fcm-pi/README.md) - **Shared core** (`fcm-agent-core`): one scan/rank/cache engine for both adapters, with a cross-tool cache and daemon integration. API: [`packages/fcm-agent-core/README.md`](./packages/fcm-agent-core/README.md) --- ## ๐Ÿ“‹ Contributing Issues, PRs and new provider integrations are welcome. To add a provider, see the format in [`sources.js`](./sources.js) and re-run `node scripts/generate-provider-table.mjs` so [`docs/providers.md`](./docs/providers.md) stays in sync. Latency numbers are real round-trip times from your machine. โ†’ [Development guide](./docs/development.md) ยท [Config reference](./docs/config.md) ยท [Sync-set](./docs/sync-set.md) ยท [Contributors](./CONTRIBUTORS.md) --- ## โš–๏ธ Model Licensing You own the generated output: the code and text these models produce is yours to use commercially under current provider terms. The licenses below govern the model weights, not your output: Apache 2.0 (Qwen, GPT-OSS, Devstral, Gemma), MIT / permissive (GLM Flash, MiniMax), Modified MIT (Kimi K2), Llama Community License (attribution required), DeepSeek and NVIDIA Nemotron licenses, and hosted-API terms (Gemini, Mistral, OpenRouter-hosted). Verify on the model's official page before making legal decisions; this is a summary, not legal advice. --- ## ๐Ÿ“Š Telemetry FCM collects **anonymous** usage telemetry (app version, tool mode, OS, terminal family, a random install ID). No personal information, API keys, prompts, source code, or file paths ever leave your machine. Disable with `--no-telemetry` or `FREE_CODING_MODELS_TELEMETRY=0`. --- ## ๐Ÿ›ก๏ธ Security & Trust | Signal | Status | |--------|--------| | **npm Provenance** | โœ… Sigstore-signed | | **SBOM** | โœ… Attached to every GitHub Release | | **Dependencies** | โœ… Small, pure JavaScript (chalk for the TUI; socket.io + UI libs for the dashboard), no native builds | | **Security Policy** | โœ… [`SECURITY.md`](./SECURITY.md) | | **Dependabot + `npm audit` CI** | โœ… Weekly updates, scan on every push | | **License** | โœ… MIT | Keys live locally in `~/.free-coding-models.json` (`0600`) and are only ever sent to the matching provider endpoint. FCM never requires sudo and never executes arbitrary remote code. To report a vulnerability, see [`SECURITY.md`](./SECURITY.md). --- ## Star History Star History Chart --- ## Contributors 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). โ†’ Full credits and highlighted contributions: [`CONTRIBUTORS.md`](./CONTRIBUTORS.md) --- ## ๐Ÿ“š More docs [Providers](./docs/providers.md) ยท [TUI](./docs/tui.md) ยท [Web Dashboard](./docs/web-dashboard.md) ยท [Router](./docs/router.md) ยท [Flags](./docs/flags.md) ยท [Integrations](./docs/integrations.md) ยท [Stability & columns](./docs/stability.md) ยท [Sync-set](./docs/sync-set.md) ยท [Config](./docs/config.md) ยท [Development](./docs/development.md) ยท [Other free AI resources](./docs/resources.md) ## License [MIT](./LICENSE)