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.
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