free-coding-models 0.5.79 → 0.5.81
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 +34 -29
- package/changelog/v0.5.80.md +17 -0
- package/changelog/v0.5.81.md +25 -0
- package/package.json +2 -2
- package/sources.js +101 -22
- package/src/core/config.js +3 -0
- package/src/core/kilo.js +1 -1
- package/src/core/opencode.js +2 -2
- package/src/core/provider-key-tester.js +3 -1
- package/src/core/provider-metadata.js +25 -7
- package/src/core/quota-capabilities.js +3 -0
- package/src/tui/theme.js +4 -0
- package/web/dist/assets/{index-Ct7RqkOX.js → index-Bb5I0K1-.js} +4 -4
- package/web/dist/index.html +1 -1
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
|
-
Track
|
|
9
|
+
Track a large catalog of free coding models from 20+ trusted AI providers in real time, 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 and more.<br><br>
|
|
11
11
|
<strong>Use Kimi K2, DeepSeek V3/V4, GPT-OSS, Qwen3, MiniMax M3, GLM, Llama 4, Gemma 4, Devstral and more — for free</strong>
|
|
12
12
|
</p>
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
<img src="https://img.shields.io/npm/v/free-coding-models?color=3d6b00&label=npm&logo=npm" alt="npm version" width="200"><br>
|
|
16
16
|
<img src="https://img.shields.io/node/v/free-coding-models?color=3d6b00&logo=node.js" alt="node version" width="200"><br>
|
|
17
17
|
<img src="https://img.shields.io/npm/l/free-coding-models?color=3d6b00" alt="license" width="200"><br>
|
|
18
|
-
<img src="https://img.shields.io/badge/models-
|
|
19
|
-
<img src="https://img.shields.io/badge/providers-20-1a56db" alt="providers count" width="200">
|
|
18
|
+
<img src="https://img.shields.io/badge/models-large%20catalog-3d6b00?logo=nvidia" alt="models count" width="200"><br>
|
|
19
|
+
<img src="https://img.shields.io/badge/providers-20%2B-1a56db" alt="providers count" width="200">
|
|
20
20
|
</p>
|
|
21
21
|
|
|
22
22
|
```bash
|
|
@@ -25,7 +25,7 @@ free-coding-models
|
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
<p align="center">
|
|
28
|
-
<sub>Then create a free account on one of the <a href="#-free-ai-providers">
|
|
28
|
+
<sub>Then create a free account on one of the <a href="#-free-ai-providers">many providers</a> to grab an API key.</sub>
|
|
29
29
|
</p>
|
|
30
30
|
|
|
31
31
|
<p align="center">
|
|
@@ -60,7 +60,7 @@ free-coding-models
|
|
|
60
60
|
|
|
61
61
|
## 💡 Why this tool?
|
|
62
62
|
|
|
63
|
-
There
|
|
63
|
+
There is a large catalog of free and free-limited coding models from 20+ vetted providers. Which one is fastest *right now*? Which one is actually stable, versus just lucky on the last ping?
|
|
64
64
|
|
|
65
65
|
`free-coding-models` (FCM) answers that by pinging every model in parallel, showing live latency, and computing a **live Stability Score (0–100)**. Average latency alone is misleading — a model that randomly spikes to 6 seconds isn't reliable. The stability score combines **p95 latency** (30%), **jitter/variance** (30%), **spike rate** (20%), and **uptime** (20%) to measure true reliability.
|
|
66
66
|
|
|
@@ -94,7 +94,7 @@ Requires **Node.js 18+**. That's the only prerequisite — FCM has a single runt
|
|
|
94
94
|
|
|
95
95
|
### ② Grab one free API key
|
|
96
96
|
|
|
97
|
-
FCM tracks
|
|
97
|
+
FCM tracks a large catalog of models from 20+ providers, but you only need **one key** to start. The fastest sign-ups (no credit card, instant key):
|
|
98
98
|
|
|
99
99
|
- **Groq** → [console.groq.com/keys](https://console.groq.com/keys) — Llama 4, GPT-OSS, blazing fast
|
|
100
100
|
- **Cerebras** → [cloud.cerebras.ai](https://cloud.cerebras.ai) — the lowest latency in the whole catalog
|
|
@@ -165,30 +165,35 @@ Once the TUI feels familiar, FCM has three more surfaces — pick the one that m
|
|
|
165
165
|
|
|
166
166
|
## 🟢 Free AI Providers
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
A large catalog of coding models from 20+ active providers, ranked by practical free-tier usefulness. Sign up on any one of them to get a key — you only need one to start.
|
|
169
169
|
|
|
170
170
|
| # | Provider | Models | Tier range | Free tier | Env var |
|
|
171
171
|
|---|----------|--------|-----------|-----------|--------|
|
|
172
|
-
| 1 | [NVIDIA NIM](https://build.nvidia.com) |
|
|
173
|
-
| 2 | [Groq](https://console.groq.com/keys) |
|
|
172
|
+
| 1 | [NVIDIA NIM](https://build.nvidia.com) | 25 | S+ → C | ~40 RPM (no credit card) | `NVIDIA_API_KEY` |
|
|
173
|
+
| 2 | [Groq](https://console.groq.com/keys) | 5 | S → B | 30 RPM, 1K‑14.4K req/day (no credit card) | `GROQ_API_KEY` |
|
|
174
174
|
| 3 | [Cerebras](https://cloud.cerebras.ai) | 2 | S+ → S | 30 RPM, 1M tokens/day (no credit card) | `CEREBRAS_API_KEY` |
|
|
175
|
-
| 4 | [Google AI Studio](https://aistudio.google.com/apikey) |
|
|
176
|
-
| 5 | [
|
|
177
|
-
| 6 | [
|
|
178
|
-
| 7 | [
|
|
179
|
-
| 8 | [
|
|
180
|
-
| 9 | [
|
|
181
|
-
| 10 | [
|
|
182
|
-
| 11 | [
|
|
183
|
-
| 12 | [
|
|
184
|
-
| 13 | [
|
|
185
|
-
| 14 | [
|
|
186
|
-
| 15 | [
|
|
187
|
-
| 16 | [
|
|
188
|
-
| 17 | [
|
|
189
|
-
| 18 | [
|
|
190
|
-
| 19 | [
|
|
191
|
-
| 20 | [
|
|
175
|
+
| 4 | [Google AI Studio](https://aistudio.google.com/apikey) | 10 | S+ → A | Gemini free quotas vary by model/region | `GOOGLE_API_KEY` |
|
|
176
|
+
| 5 | [Mistral La Plateforme](https://console.mistral.ai/api-keys) | 6 | S+ → A | Experiment plan, free evaluation tier | `MISTRAL_API_KEY` |
|
|
177
|
+
| 6 | [Cloudflare Workers AI](https://dash.cloudflare.com) | 19 | S+ → B | 10K neurons/day, 300 RPM (no credit card) | `CLOUDFLARE_API_TOKEN` + `CLOUDFLARE_ACCOUNT_ID` |
|
|
178
|
+
| 7 | [OpenRouter](https://openrouter.ai/keys) | 14 | S+ → C | 50 req/day free, 1K/day with $10 spend | `OPENROUTER_API_KEY` |
|
|
179
|
+
| 8 | [SambaNova](https://cloud.sambanova.ai/apis) | 6 | S+ → B+ | Small developer quota, useful for light usage | `SAMBANOVA_API_KEY` |
|
|
180
|
+
| 9 | [OVHcloud AI Endpoints](https://endpoints.ai.cloud.ovh.net) | 10 | S → B | 2 req/min/IP free, 400 RPM with key | `OVH_AI_ENDPOINTS_ACCESS_TOKEN` |
|
|
181
|
+
| 10 | [Codestral](https://console.mistral.ai/api-keys) | 1 | B+ | 30 RPM, 2K req/day | `MISTRAL_API_KEY` |
|
|
182
|
+
| 11 | [ZAI](https://z.ai) | 7 | S | Free Flash models only | `ZAI_API_KEY` |
|
|
183
|
+
| 12 | [Scaleway](https://console.scaleway.com/iam/api-keys) | 15 | S+ → B | 1M free tokens | `SCALEWAY_API_KEY` |
|
|
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) | 5 | S+ → A | Free with OpenCode account | Zen models ✨ |
|
|
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) | 5 | S+ → B+ | Shared free tier, optional free token | optional `LLM7_API_KEY` |
|
|
188
|
+
| 17 | [Routeway](https://routeway.ai) | 10 | S+ → C | Explicit `:free` zero-price models | `ROUTEWAY_API_KEY` |
|
|
189
|
+
| 18 | [Novita AI](https://novita.ai) | 0 | - | No zero-price models currently | `NOVITA_API_KEY` |
|
|
190
|
+
| 19 | [Ollama Cloud](https://ollama.com/pricing) | 17 | S+ → A | Free cloud usage with session/weekly limits | `OLLAMA_API_KEY` |
|
|
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
|
+
| 21 | [SiliconFlow](https://cloud.siliconflow.cn/account/ak) | 3 | A → B+ | 3 models @ $0, 1000 RPM (phone SMS required) | `SILICONFLOW_API_KEY` |
|
|
193
|
+
| 22 | [Requesty](https://app.requesty.ai/api-keys) | 12 | S+ → C | 200 req/day free, no card (4x OpenRouter) | `REQUESTY_API_KEY` |
|
|
194
|
+
|
|
195
|
+
> **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
|
+
> **SiliconFlow & Requesty** : integrations verifiees le 2026-08-24 via `/v1/models` live et docs officielles, free tiers recurrents confirmes sans Pollen.
|
|
192
197
|
|
|
193
198
|
> 💡 One key is enough to start. Add more at any time by pressing **`P`** inside the TUI (or via the Web Dashboard **Settings** page). A few providers (`Kilo`, `LLM7`, OVHcloud sandbox) can even answer without a key, with tighter shared limits.
|
|
194
199
|
|
|
@@ -231,7 +236,7 @@ To protect you, FCM:
|
|
|
231
236
|
|
|
232
237
|
The TUI is the heart of FCM. Launch it with `free-coding-models` and you get a live, sortable table of every model — real latency, stability, verdict, and a one-key launch into your coding tool.
|
|
233
238
|
|
|
234
|
-
<p align="center"><video src="website/public/videos/tui-first-launch.mp4" alt="First launch —
|
|
239
|
+
<p align="center"><video src="website/public/videos/tui-first-launch.mp4" alt="First launch — many models ping in parallel" autoplay muted loop playsinline width="100%"></video></p>
|
|
235
240
|
|
|
236
241
|
### First-run flow
|
|
237
242
|
|
|
@@ -761,7 +766,7 @@ Every routed request through the daemon feeds a persistent per-model telemetry f
|
|
|
761
766
|
|
|
762
767
|
### Features at a glance
|
|
763
768
|
|
|
764
|
-
- **Parallel pings** — all
|
|
769
|
+
- **Parallel pings** — all models tested simultaneously via native `fetch`
|
|
765
770
|
- **AI benchmark columns** — `Ctrl+A` / `Ctrl+U` split into AI Latency + TPS; optional Startup AI Speed Scan
|
|
766
771
|
- **Adaptive monitoring** — 2s burst for 60s → 10s normal → 30s idle
|
|
767
772
|
- **Stability score** — composite 0–100 (p95, jitter, spike rate, uptime)
|
|
@@ -801,7 +806,7 @@ A: Yes — see [`sources.js`](./sources.js) for the model catalog format.
|
|
|
801
806
|
|
|
802
807
|
## ⚖️ Model Licensing & Commercial Use
|
|
803
808
|
|
|
804
|
-
**Short answer:** the
|
|
809
|
+
**Short answer:** the cataloged models are API/CLI-served where generated-output ownership is generally granted by the provider/model terms. **You own the generated output** — code, text, or otherwise — and can use it commercially. The licenses below govern the *model weights themselves*, not your generated content.
|
|
805
810
|
|
|
806
811
|
| License | Models | Commercial Output |
|
|
807
812
|
|---------|--------|:-----------------:|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Changelog v0.5.80 - 2026-08-23
|
|
2
|
+
|
|
3
|
+
### Changed
|
|
4
|
+
- **Catalog cleanup via @Muhammad95959 (PR #161).** Removed/updated models that are no longer in live provider APIs:
|
|
5
|
+
- **NVIDIA NIM**: removed `z-ai/glm-5.2`, `mistralai/mistral-medium-3.5-128b` (no longer in `integrate.api.nvidia.com/v1/models`); kept Mistral via direct LP.
|
|
6
|
+
- **Cerebras**: removed `zai-glm-4.7` (shutdown 2026-08-17).
|
|
7
|
+
- **OpenRouter**: removed `openai/gpt-oss-20b:free` (only paid remains).
|
|
8
|
+
- **Codestral**: removed `codestral-2501`, `codestral-2405` (only `codestral-2508`/`latest` remain).
|
|
9
|
+
- **ZAI**: removed `zai/glm-5v-turbo`, `zai/glm-4.7-flashx`, `zai/glm-4.6v` (now paid-only).
|
|
10
|
+
- **OpenCode Zen**: removed `deepseek-v4-flash-free`, `laguna-s-2.1-free` (dropped from free-tier docs).
|
|
11
|
+
- **Ollama Cloud**: removed `minimax-m2.5`, `gemini-3-flash-preview`, `kimi-k2.5`; fixed IDs `deepseek-v4-flash`/`pro` and `mistral-large-3`/`qwen3.5` to new tags.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
- **Test for NVIDIA probe list** updated to reflect new catalog head (`moonshotai/kimi-k2.6` etc.) so `pnpm test` stays green.
|
|
15
|
+
|
|
16
|
+
### Tests
|
|
17
|
+
- 813/813 passing. Thanks @Muhammad95959 for the live catalog verification!
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Changelog v0.5.81 - 2026-08-24
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
- **3 new free recurring providers** (total 22 providers, ~207 models)
|
|
5
|
+
- **Pollinations AI** — 10 models `gen.pollinations.ai/v1` : `laguna`, `minimax-m2.7`, `qwen-coder`, `deepseek`, `kimi-code`, `openai`, `gemma-4-31b`, `gpt-oss`, `qwen3.7-flash`, `nemotron-3.5-lightning` — free via daily Pollen grants (Quest 3.25) , ⚠️ experimental integration not yet confirmed stable (Pollen system may change, `MISS` = 402 when balance 0, `HIT` cache may still 200)
|
|
6
|
+
- **SiliconFlow** — 3 models `api.siliconflow.cn/v1` : `THUDM/GLM-Z1-9B-0414`, `Qwen/Qwen3-8B`, `deepseek-ai/DeepSeek-R1-Distill-Qwen-7B` — 3 models @ $0 forever, 1000 RPM, phone SMS required, verified 2026-08-24 via pricing page
|
|
7
|
+
- **Requesty** — 12 models `router.requesty.ai/v1` : `nvidia/nemotron-3-ultra-550b-a55b`, `poolside/laguna-xs.2`, `nvidia/nemotron-3-super`, `poolside/laguna-m.1`, `google/gemma-4-31b-it`, `nvidia/nemotron-3-nano-omni`, `nvidia/nemotron-3-nano`, `nvidia/nemotron-3.5-lightning-30b-a3b`, `mistral/leanstral-1-5`, `novita/ling-3.0-tiny`, `nvidia/content-safety`, `nvidia/muse-glimmer-30b` — 200 req/day free no card, 4x OpenRouter, verified live via `GET /v1/models` 676 models 12 zero-price
|
|
8
|
+
- **Provider metadata** for the 3 new providers: `ENV_VAR_NAMES` (`POLLINATIONS_API_KEY`, `SILICONFLOW_API_KEY`, `REQUESTY_API_KEY`), `PROVIDER_METADATA` labels/couleurs/signupHint/rateLimits with detailed Pollen explanation, `PROVIDER_CAPABILITIES` daily reset, `PROVIDER_AUTH_ENDPOINTS` fixes
|
|
9
|
+
- **Theme colors** for `pollinations` (pink) and `requesty` (blue) in both dark/light palettes
|
|
10
|
+
- **Pollen help** in Settings overlay and README/website: explains Pollen ≈ $1, daily Quest grants via tier/quests, 0 Pollen = 402, HIT vs MISS, wallet `enter.pollinations.ai`, grants at midnight UTC, experimental note
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- **README** : removed hard-coded total counts everywhere (super chiant a maintenir) — `~207 models across 22 providers` -> `a large catalog of free coding models from 20+ providers`, badges `models-207` -> `models-large catalog` `providers-22` -> `providers-20+`, `~222` video caption -> `many`, `Parallel pings all ~207` -> `all models`, `~207 cataloged` -> `the cataloged`; provider table updated to 22 rows with real per-provider counts and new Pollinations/SiliconFlow/Requesty rows, added Pollen explainer block after table (with experimental warning) and SiliconFlow/Requesty verified note; removed GitHub Models from active table (retired 2026-07-30)
|
|
14
|
+
- **Website docs** : `website/src/content/docs/introduction.mdx` and `quick-start.mdx` and `core/providers.mdx` and `docs/development.md` and `routes/index.tsx` hero `222+` -> `Many` — same generic wording, no hard totals
|
|
15
|
+
- **Pollinations experimental flag** : README and `website/src/content/docs/core/providers.mdx` mark Pollinations `⚠️ experimental` and note `not yet confirmed stable`
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- **SiliconFlow baseURL** : `api.siliconflow.com` -> `api.siliconflow.cn` in `src/core/opencode.js` (2 sites) and `src/core/kilo.js` and `src/core/provider-key-tester.js` `siliconflow` endpoint now `https://api.siliconflow.cn/v1/models`
|
|
19
|
+
- **Provider key tester** : `pollinations` and `requesty` set to `null` (their `/v1/models` are public without auth, so auth-only probe would always 200 and give false ok, now it falls back to ping which correctly shows 402 when balance 0)
|
|
20
|
+
- **Sync** : `sync-website-sources.sh` run -> `website/src/_fcm-sources/sources.js` updated to 22 providers
|
|
21
|
+
|
|
22
|
+
### Verified
|
|
23
|
+
- `pnpm test` 813 pass 0 fail
|
|
24
|
+
- `node -e import('./sources.js')` 22 providers 207 models 0 dups
|
|
25
|
+
- Live probes 2026-08-24: Pollinations `sk_GCaY...` and `sk_0dSR...` both `402` on MISS with `0.0000` balance (HIT still 200 via fallback), Quest wallet `3.25` not yet linked to keys (Budget ∞ but still 0), Requesty 12 zero-price confirmed, SiliconFlow pricing page verified
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "free-coding-models",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.81",
|
|
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",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"@tabler/icons-react": "^3.44.0",
|
|
77
77
|
"@tanstack/react-table": "^8.21.3",
|
|
78
78
|
"chalk": "^5.6.2",
|
|
79
|
-
"kandown": "^0.
|
|
79
|
+
"kandown": "^0.52.0",
|
|
80
80
|
"socket.io": "^4.8.3",
|
|
81
81
|
"socket.io-client": "^4.8.3",
|
|
82
82
|
"@tanstack/react-virtual": "^3.14.2"
|
package/sources.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* 📖 Secondary: https://swe-rebench.com (independent evals, scores are lower)
|
|
30
30
|
* 📖 Leaderboard tracker: https://www.marc0.dev/en/leaderboard
|
|
31
31
|
*
|
|
32
|
-
* @exports nvidiaNim, groq, cerebras, sambanova, openrouter, githubModels, mistral, codestral, scaleway, googleai, zai, qwen, cloudflare, ovhcloud, opencodeZen, kilo, llm7, routeway, novita, ollamaCloud — model arrays per active provider
|
|
32
|
+
* @exports nvidiaNim, groq, cerebras, sambanova, openrouter, githubModels, mistral, codestral, scaleway, googleai, zai, qwen, cloudflare, ovhcloud, opencodeZen, kilo, llm7, routeway, novita, ollamaCloud, pollinations, siliconflow, requesty — model arrays per active provider
|
|
33
33
|
* @exports sources — map of active free/free-limited providers, each with { name, url, models }
|
|
34
34
|
|
|
35
35
|
* @exports MODELS — flat array of [modelId, label, tier, sweScore, ctx, providerKey]
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
// 📖 NIM source - https://build.nvidia.com
|
|
42
42
|
export const nvidiaNim = [
|
|
43
43
|
// ── S+ tier — SWE-bench Verified ≥70% ──
|
|
44
|
-
|
|
45
|
-
// Removed (2026-07-27): minimaxai/minimax-m2.7 (MiniMax M2.7) — EOL 2026-07-27 (HTTP 410 Gone)
|
|
44
|
+
// Removed (2026-08-23): z-ai/glm-5.2 (GLM 5.1) — no longer in integrate.api.nvidia.com/v1/models (102 models live)
|
|
46
45
|
['moonshotai/kimi-k2.6', 'Kimi K2.6', 'S+', '80.2%', '262k'],
|
|
47
46
|
['deepseek-ai/deepseek-v4-pro', 'DeepSeek V4 Pro', 'S+', '80.6%', '1M'], // ⚠️ Page-only / partner-routed (2026-08-13): listed on build.nvidia.com but NOT in integrate.api.nvidia.com/v1/models; served via Fireworks/DeepInfra/Together/OpenRouter
|
|
48
47
|
['deepseek-ai/deepseek-v4-flash-0731', 'DeepSeek V4 Flash', 'S+', '79.0%', '1M'], // Fixed (2026-08-13): id 'deepseek-ai/deepseek-v4-flash' → 'deepseek-ai/deepseek-v4-flash-0731' (NIM /v1/models only exposes the -0731 suffix)
|
|
@@ -52,7 +51,7 @@ export const nvidiaNim = [
|
|
|
52
51
|
// ── S tier — SWE-bench Verified 60–70% ──
|
|
53
52
|
['openai/gpt-oss-120b', 'GPT OSS 120B', 'S', '62.4%', '128k'],
|
|
54
53
|
// Removed (2026-07-27): meta/llama-4-maverick-17b-128e-instruct (Llama 4 Maverick) — EOL 2026-07-27 (HTTP 410 Gone)
|
|
55
|
-
|
|
54
|
+
// Removed (2026-08-23): mistralai/mistral-medium-3.5-128b (Mistral Medium 3.5) — no longer in integrate.api.nvidia.com/v1/models (still on Mistral LP directly)
|
|
56
55
|
// Removed (2026-07-27): mistralai/mistral-small-4-119b-2603 (Mistral Small 4) — EOL 2026-07-27 (HTTP 410 Gone)
|
|
57
56
|
['minimaxai/minimax-m3', 'MiniMax M3', 'S+', '78.4%', '1M'],
|
|
58
57
|
['mistralai/mistral-nemotron', 'Mistral Nemotron', 'S', '-', '128k'], // Fixed ID (2026-07-27): nvidia/mistral-nemotron → mistralai/mistral-nemotron
|
|
@@ -105,9 +104,7 @@ export const groq = [
|
|
|
105
104
|
// 📖 Cerebras source - https://cloud.cerebras.ai
|
|
106
105
|
// 📖 Free API keys available at https://cloud.cerebras.ai
|
|
107
106
|
export const cerebras = [
|
|
108
|
-
//
|
|
109
|
-
// ⚠️ DEPRECATED — shutdown 2026-08-17 (Cerebras official notice)
|
|
110
|
-
['zai-glm-4.7', 'GLM 4.7', 'S+', '73.8%', '64k', null, '2026-08-17'], // Fixed (2026-07-27): ctx '128k' → '64k' (free tier per official docs)
|
|
107
|
+
// Removed (2026-08-23): zai-glm-4.7 (GLM 4.7) — shutdown 2026-08-17 per Cerebras official notice
|
|
111
108
|
// ── S tier — SWE-bench Verified 60–70% ──
|
|
112
109
|
['gpt-oss-120b', 'GPT OSS 120B', 'S', '62.4%', '65k'], // Fixed (2026-07-27): ctx '128k' → '65k' (free tier per official docs)
|
|
113
110
|
// ── A tier — SWE-bench Verified 40–50% ──
|
|
@@ -168,7 +165,7 @@ export const openrouter = [
|
|
|
168
165
|
// Removed (2026-07-27): qwen/qwen3-next-80b-a3b-instruct:free (Qwen3 Next 80B A3B) — no longer on free tier
|
|
169
166
|
// ── B+ tier — SWE-bench Verified 30–35% ──
|
|
170
167
|
['nvidia/nemotron-nano-9b-v2:free', 'Nemotron Nano 9B', 'B+', '18.0%', '128k'],
|
|
171
|
-
|
|
168
|
+
// Removed (2026-08-23): openai/gpt-oss-20b:free (GPT OSS 20B) — :free variant removed from OpenRouter catalog; only paid variant remains ($0.03/$0.13)
|
|
172
169
|
// ── B tier — SWE-bench Verified 20–30% ──
|
|
173
170
|
// Removed (2026-07-27): openrouter/free (OpenRouter Free) — no longer on free tier
|
|
174
171
|
// Removed (2026-07-27): meta-llama/llama-3.2-3b-instruct:free (Llama 3.2 3B Instruct) — no longer on free tier
|
|
@@ -213,8 +210,7 @@ export const mistral = [
|
|
|
213
210
|
export const codestral = [
|
|
214
211
|
// ── A tier — SWE-bench Verified 40–50% ──
|
|
215
212
|
['codestral-2508', 'Codestral', 'A', '40.0%', '128k'], // Fixed (2026-07-27): ctx '256k' → '128k' per official Mistral model card
|
|
216
|
-
|
|
217
|
-
['codestral-2405', 'Codestral 2405', 'B', '30.0%', '32k'], // Added (2026-08-13)
|
|
213
|
+
// Removed (2026-08-23): codestral-2501 (Codestral 2501), codestral-2405 (Codestral 2405) — retired from Mistral API; only codestral-2508 / codestral-latest remain
|
|
218
214
|
// Removed (2026-08-13): codestral-2 (Codestral 2) — fabricated ID, never existed in Mistral catalog (Mistral uses date-stamped versioning)
|
|
219
215
|
]
|
|
220
216
|
|
|
@@ -263,6 +259,8 @@ export const googleai = [
|
|
|
263
259
|
|
|
264
260
|
// 📖 ZAI source - https://open.z.ai
|
|
265
261
|
// 📖 Free tier is limited to Flash models; paid GLM models are intentionally excluded.
|
|
262
|
+
// 📖 Verified live (2026-08-23) via ping test: glm-4.5-flash and glm-4.6v-flash still serve free;
|
|
263
|
+
// 📖 glm-4.7-flash is free but was returning "overloaded" 429s; API /models lists only 9 text models.
|
|
266
264
|
export const zai = [
|
|
267
265
|
// ── S+ tier — SWE-bench Verified ≥70% ──
|
|
268
266
|
['zai/glm-5.2', 'GLM-5.2', 'S+', '-', '1M'], // Added (2026-08-13)
|
|
@@ -270,13 +268,11 @@ export const zai = [
|
|
|
270
268
|
['zai/glm-4.7-flash', 'GLM-4.7-Flash', 'A+', '59.2%', '200k'], // Fixed (2026-07-27): ctx '203k' → '200k' per official docs
|
|
271
269
|
['zai/glm-4.5-flash', 'GLM-4.5-Flash', 'S', '59.2%', '128k'],
|
|
272
270
|
['zai/glm-5-turbo', 'GLM-5-Turbo', 'S', '-', '200k'], // Added (2026-08-13)
|
|
273
|
-
['zai/glm-5v-turbo', 'GLM-5V-Turbo', 'S', '-', '200k'], // Added (2026-08-13)
|
|
274
271
|
['zai/glm-4.7', 'GLM-4.7', 'S', '-', '200k'], // Added (2026-08-13)
|
|
275
272
|
['zai/glm-4.6', 'GLM-4.6', 'S', '-', '200k'], // Added (2026-08-13)
|
|
276
|
-
|
|
273
|
+
// Removed (2026-08-23): zai/glm-4.7-flashx, zai/glm-5v-turbo, zai/glm-4.6v — now paid-only ("Insufficient balance or no resource package" per ping test)
|
|
277
274
|
// ── A tier — SWE-bench Verified 40–50% ──
|
|
278
275
|
['zai/glm-4.6v-flash', 'GLM-4.6V-Flash', 'A', '-', '128k'],
|
|
279
|
-
['zai/glm-4.6v', 'GLM-4.6V', 'A', '-', '128k'], // Added (2026-08-13)
|
|
280
276
|
]
|
|
281
277
|
|
|
282
278
|
// 📖 Alibaba Cloud (DashScope) source - https://dashscope-intl.aliyuncs.com
|
|
@@ -381,11 +377,11 @@ export const ovhcloud = [
|
|
|
381
377
|
// 📖 Config: set provider to opencode/<model-id> in OpenCode config
|
|
382
378
|
export const opencodeZen = [
|
|
383
379
|
['big-pickle', 'Big Pickle', 'S+', '72.0%', '200k'],
|
|
384
|
-
|
|
380
|
+
// Removed (2026-08-23): deepseek-v4-flash-free (DeepSeek V4 Flash Free) — dropped from Zen free-tier docs/pricing; only paid DeepSeek V4 Flash remains
|
|
385
381
|
['mimo-v2.5-free', 'MiMo-V2.5 Free', 'S+', '-', '200k'],
|
|
386
382
|
['nemotron-3-ultra-free', 'Nemotron 3 Ultra Free', 'S+', '71.9%', '200k'],
|
|
387
383
|
// Removed (2026-08-13): north-mini-code-free (North Mini Code Free) — no longer in OpenCode Zen free-tier API
|
|
388
|
-
|
|
384
|
+
// Removed (2026-08-23): laguna-s-2.1-free (Laguna S 2.1 Free) — dropped from Zen free-tier docs/pricing (still on /models but no longer free)
|
|
389
385
|
// Removed (2026-08-13): ling-3.0-flash-free (Ling-3.0-flash Free) — no longer in OpenCode Zen free-tier API
|
|
390
386
|
['hy3-free', 'Tencent Hy3 Free', 'S', '-', '200k'], // Added (2026-08-13) — brought back after July removal
|
|
391
387
|
['nemotron-3.5-lightning-free', 'Nemotron 3.5 Lightning Free','S+','-', '200k'], // Added (2026-08-13)
|
|
@@ -454,6 +450,68 @@ export const novita = [
|
|
|
454
450
|
// Removed (2026-07-27): qwen/qwen3.5-plus (Qwen3.5 Plus) — no longer in novita catalog
|
|
455
451
|
]
|
|
456
452
|
|
|
453
|
+
// 📖 Pollinations AI source - https://gen.pollinations.ai
|
|
454
|
+
// 📖 OpenAI-compatible endpoint: https://gen.pollinations.ai/v1/chat/completions
|
|
455
|
+
// 📖 Free tier: anonymous without key or free API key from https://enter.pollinations.ai
|
|
456
|
+
// 📖 Daily Pollen grants per tier (seed/flower/nectar) — free models cost Pollen but grants renew daily; anonymous tier has rate limits.
|
|
457
|
+
// 📖 Verified live 2026-08-23 via GET /v1/models (319 models); IDs below are live and coding-relevant.
|
|
458
|
+
export const pollinations = [
|
|
459
|
+
// ── S+ tier — SWE-bench Verified ≥70% ──
|
|
460
|
+
['laguna', 'Laguna XS.2', 'S+', '70.9%', '1M'],
|
|
461
|
+
['minimax-m2.7', 'MiniMax M2.7', 'S+', '78.0%', '200k'],
|
|
462
|
+
// ── S tier — SWE-bench Verified 60–70% ──
|
|
463
|
+
['qwen-coder', 'Qwen3 Coder', 'S', '69.6%', '262k'],
|
|
464
|
+
['deepseek', 'DeepSeek V3', 'S', '66.0%', '1M'],
|
|
465
|
+
['kimi-code', 'Kimi K2 Code', 'S', '60.4%', '262k'],
|
|
466
|
+
['openai', 'OpenAI GPT', 'S', '62.4%', '400k'],
|
|
467
|
+
// ── A+ tier — SWE-bench Verified 50–60% ──
|
|
468
|
+
['gemma-4-31b', 'Gemma 4 31B', 'A+', '52.0%', '262k'],
|
|
469
|
+
['gpt-oss', 'GPT OSS 20B', 'A+', '50.3%', '131k'],
|
|
470
|
+
['qwen3.7-flash', 'Qwen3.7 Flash', 'A+', '-', '1M'],
|
|
471
|
+
// ── B+ tier ──
|
|
472
|
+
['nemotron-3.5-lightning', 'Nemotron 3.5 Lightning', 'B+', '-', '262k'],
|
|
473
|
+
]
|
|
474
|
+
|
|
475
|
+
// 📖 SiliconFlow source - https://api.siliconflow.cn/v1/chat/completions
|
|
476
|
+
// 📖 OpenAI-compatible endpoint: https://api.siliconflow.cn/v1
|
|
477
|
+
// 📖 Free tier: permanently free models at $0 (no card needed beyond phone SMS verification).
|
|
478
|
+
// 📖 Verified 2026-08-23 via pricing page + docs: THUDM/GLM-Z1-9B-0414 is 免费; Qwen3-8B and DeepSeek-R1-Distill-Qwen-7B
|
|
479
|
+
// 📖 documented as free in SiliconFlow guide 2026-06-05 ("Three models are completely free: Qwen3-8B, DeepSeek-R1-Distill-Qwen-7B, DeepSeek-OCR")
|
|
480
|
+
// 📖 and still reachable with free-tier rate limits (1000 RPM). Keep only the chat text models here.
|
|
481
|
+
export const siliconflow = [
|
|
482
|
+
// ── A tier — SWE-bench Verified 40–50% ──
|
|
483
|
+
['THUDM/GLM-Z1-9B-0414', 'GLM-Z1 9B', 'A', '-', '32k'],
|
|
484
|
+
// ── B+ tier ──
|
|
485
|
+
['Qwen/Qwen3-8B', 'Qwen3 8B', 'B+', '30.0%', '32k'],
|
|
486
|
+
['deepseek-ai/DeepSeek-R1-Distill-Qwen-7B', 'DeepSeek R1 Distill Qwen 7B', 'A', '-', '32k'],
|
|
487
|
+
]
|
|
488
|
+
|
|
489
|
+
// 📖 Requesty source - https://router.requesty.ai/v1
|
|
490
|
+
// 📖 OpenAI-compatible gateway: https://router.requesty.ai/v1/chat/completions
|
|
491
|
+
// 📖 Free tier: 200 req/day on zero-price free models (4× OpenRouter), no card, EU residency, routing/caching included.
|
|
492
|
+
// 📖 Verified live 2026-08-23 via GET /v1/models (676 models, 12 with input_price=0 & output_price=0).
|
|
493
|
+
export const requesty = [
|
|
494
|
+
// ── S+ tier — SWE-bench Verified ≥70% ──
|
|
495
|
+
['nvidia/nemotron-3-ultra-550b-a55b', 'Nemotron 3 Ultra', 'S+', '71.9%', '1M'],
|
|
496
|
+
['poolside/laguna-xs.2', 'Laguna XS.2', 'S+', '70.9%', '32k'],
|
|
497
|
+
// ── S tier — SWE-bench Verified 60–70% ──
|
|
498
|
+
['nvidia/nemotron-3-super-120b-a12b', 'Nemotron 3 Super', 'S', '60.5%', '1M'],
|
|
499
|
+
['poolside/laguna-m.1', 'Laguna M.1', 'S', '-', '32k'],
|
|
500
|
+
// ── A+ tier — SWE-bench Verified 50–60% ──
|
|
501
|
+
['google/gemma-4-31b-it', 'Gemma 4 31B', 'A+', '52.0%', '262k'],
|
|
502
|
+
['nvidia/nemotron-3-nano-omni-30b-a3b-reasoning', 'Nemotron 3 Omni', 'A+', '52.0%', '131k'],
|
|
503
|
+
// ── A tier — SWE-bench Verified 40–50% ──
|
|
504
|
+
['nvidia/nemotron-3-nano-30b-a3b', 'Nemotron Nano 30B', 'A-', '38.8%', '262k'],
|
|
505
|
+
// ── B+ tier — SWE-bench Verified 30–35% ──
|
|
506
|
+
['nvidia/nemotron-3.5-lightning-30b-a3b', 'Nemotron 3.5 Lightning', 'B+', '-', '1M'],
|
|
507
|
+
// ── B tier — SWE-bench Verified 20–30% ──
|
|
508
|
+
['mistral/leanstral-1-5', 'Leanstral 1.5', 'B', '-', '262k'],
|
|
509
|
+
['novita/inclusionai/ling-3.0-tiny', 'Ling 3.0 Tiny', 'B', '-', '262k'],
|
|
510
|
+
// ── C tier — other zero-price models (kept for breadth) ──
|
|
511
|
+
['nvidia/nemotron-3.5-content-safety', 'Nemotron Content Safety', 'C', '-', '131k'],
|
|
512
|
+
['nvidia/muse-glimmer-30b', 'Muse Glimmer 30B', 'C', '-', '131k'],
|
|
513
|
+
]
|
|
514
|
+
|
|
457
515
|
// 📖 Ollama Cloud source - https://ollama.com/pricing and https://ollama.com/search?c=cloud
|
|
458
516
|
// 📖 Free plan includes cloud model access with session/weekly limits. This list keeps coding-relevant cloud models only.
|
|
459
517
|
// 📖 Catalog verified 2026-07-18 against official Ollama cloud model search page.
|
|
@@ -464,22 +522,22 @@ export const ollamaCloud = [
|
|
|
464
522
|
['glm-5.2', 'GLM 5.2', 'S+', '82.8%', '1M'], // Fixed (2026-07-27): ctx '128k' → '1M'
|
|
465
523
|
['minimax-m2.7', 'MiniMax M2.7', 'S+', '78.0%', '200k'],
|
|
466
524
|
['minimax-m3', 'MiniMax M3', 'S+', '78.4%', '1M'], // Fixed (2026-07-27): ctx '512k' → '1M'
|
|
467
|
-
|
|
525
|
+
// Removed (2026-08-23): minimax-m2.5 (MiniMax M2.5) — no longer in ollama.com/v1/models (19 models live)
|
|
468
526
|
['kimi-k2.6', 'Kimi K2.6', 'S+', '80.2%', '256k'], // Fixed (2026-07-27): ctx '262k' → '256k'
|
|
469
|
-
['deepseek-v4-flash', 'DeepSeek V4 Flash', 'S+', '79.0%', '1M'], // Fixed (2026-
|
|
470
|
-
['deepseek-v4-pro', 'DeepSeek V4 Pro', 'S+', '80.6%', '1M'], // Fixed (2026-
|
|
527
|
+
['deepseek-v4-flash:0731', 'DeepSeek V4 Flash', 'S+', '79.0%', '1M'], // Fixed (2026-08-23): ID 'deepseek-v4-flash' → 'deepseek-v4-flash:0731' (renamed upstream)
|
|
528
|
+
['deepseek-v4-pro:0813', 'DeepSeek V4 Pro', 'S+', '80.6%', '1M'], // Fixed (2026-08-23): ID 'deepseek-v4-pro' → 'deepseek-v4-pro:0813' (renamed upstream)
|
|
471
529
|
// ── S tier — SWE-bench Verified 60–70% ──
|
|
472
530
|
['kimi-k2.7-code', 'Kimi K2.7 Code', 'S', '60.4%', '256k'], // Fixed (2026-07-27): ctx '262k' → '256k'
|
|
473
531
|
['gpt-oss:120b', 'GPT OSS 120B', 'S', '62.4%', '128k'],
|
|
474
532
|
['nemotron-3-super', 'Nemotron 3 Super', 'S', '60.5%', '256k'],
|
|
475
533
|
['kimi-k3', 'Kimi K3', 'S+', '-', '1M'], // Added (2026-07-27)
|
|
476
|
-
|
|
534
|
+
// Removed (2026-08-23): gemini-3-flash-preview (Gemini 3 Flash Preview) — no gemini models left in Ollama Cloud API
|
|
477
535
|
// ── A+ tier — SWE-bench Verified 50–60% ──
|
|
478
|
-
|
|
536
|
+
// Removed (2026-08-23): kimi-k2.5 (Kimi K2.5) — no longer in ollama.com/v1/models
|
|
479
537
|
['gemma4:31b', 'Gemma 4 31B', 'A+', '52.0%', '128k'], // Fixed (2026-07-27): ctx '256k' → '128k'
|
|
480
538
|
['gpt-oss:20b', 'GPT OSS 20B', 'A+', '50.3%', '128k'],
|
|
481
|
-
['mistral-large-3:675b
|
|
482
|
-
['qwen3.5', 'Qwen 3.5 Cloud', 'A+', '-', '256k'], //
|
|
539
|
+
['mistral-large-3:675b', 'Mistral Large 3 675B Cloud', 'A+', '-', '256k'], // Fixed (2026-08-23): ID 'mistral-large-3:675b-cloud' → 'mistral-large-3:675b' (tag renamed upstream)
|
|
540
|
+
['qwen3.5:397b', 'Qwen 3.5 Cloud', 'A+', '-', '256k'], // Fixed (2026-08-23): ID 'qwen3.5' → 'qwen3.5:397b' (tag renamed upstream)
|
|
483
541
|
['nemotron-3-nano:30b', 'Nemotron 3 Nano 30B', 'A-', '38.8%', '1M'],
|
|
484
542
|
]
|
|
485
543
|
|
|
@@ -633,6 +691,27 @@ export const sources = {
|
|
|
633
691
|
quotaCode: 'limited',
|
|
634
692
|
models: novita, // Empty — kept for backward compat in user configs
|
|
635
693
|
},
|
|
694
|
+
pollinations: {
|
|
695
|
+
name: 'Pollinations AI',
|
|
696
|
+
url: 'https://gen.pollinations.ai/v1/chat/completions',
|
|
697
|
+
quota: 'Free · daily Pollen grants · key at enter.pollinations.ai',
|
|
698
|
+
quotaCode: 'free',
|
|
699
|
+
models: pollinations,
|
|
700
|
+
},
|
|
701
|
+
siliconflow: {
|
|
702
|
+
name: 'SiliconFlow',
|
|
703
|
+
url: 'https://api.siliconflow.cn/v1/chat/completions',
|
|
704
|
+
quota: 'Free · 3 models @ $0 · 1000 RPM',
|
|
705
|
+
quotaCode: 'free',
|
|
706
|
+
models: siliconflow,
|
|
707
|
+
},
|
|
708
|
+
requesty: {
|
|
709
|
+
name: 'Requesty',
|
|
710
|
+
url: 'https://router.requesty.ai/v1/chat/completions',
|
|
711
|
+
quota: 'Free · 200 req/day · no card',
|
|
712
|
+
quotaCode: 'free',
|
|
713
|
+
models: requesty,
|
|
714
|
+
},
|
|
636
715
|
'ollama-cloud': {
|
|
637
716
|
name: 'Ollama Cloud',
|
|
638
717
|
url: 'https://ollama.com/v1/chat/completions',
|
package/src/core/config.js
CHANGED
|
@@ -183,6 +183,9 @@ const ENV_VARS = {
|
|
|
183
183
|
routeway: 'ROUTEWAY_API_KEY',
|
|
184
184
|
novita: 'NOVITA_API_KEY',
|
|
185
185
|
'ollama-cloud': 'OLLAMA_API_KEY',
|
|
186
|
+
pollinations: ['POLLINATIONS_API_KEY', 'POLLINATIONS_TOKEN'],
|
|
187
|
+
siliconflow: 'SILICONFLOW_API_KEY',
|
|
188
|
+
requesty: 'REQUESTY_API_KEY',
|
|
186
189
|
}
|
|
187
190
|
|
|
188
191
|
// 📖 Smart Router defaults are intentionally conservative: balanced probing,
|
package/src/core/kilo.js
CHANGED
|
@@ -163,7 +163,7 @@ export async function startKilo(model, fcmConfig) {
|
|
|
163
163
|
config.provider.siliconflow = {
|
|
164
164
|
npm: '@ai-sdk/openai-compatible',
|
|
165
165
|
name: 'SiliconFlow',
|
|
166
|
-
options: { baseURL: 'https://api.siliconflow.
|
|
166
|
+
options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
|
|
167
167
|
models: {}
|
|
168
168
|
}
|
|
169
169
|
} else if (providerKey === 'together') {
|
package/src/core/opencode.js
CHANGED
|
@@ -478,7 +478,7 @@ export async function startOpenCode(model, fcmConfig) {
|
|
|
478
478
|
config.provider.siliconflow = {
|
|
479
479
|
npm: '@ai-sdk/openai-compatible',
|
|
480
480
|
name: 'SiliconFlow',
|
|
481
|
-
options: { baseURL: 'https://api.siliconflow.
|
|
481
|
+
options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
|
|
482
482
|
models: {}
|
|
483
483
|
}
|
|
484
484
|
} else if (providerKey === 'together') {
|
|
@@ -846,7 +846,7 @@ export async function startOpenCodeDesktop(model, fcmConfig) {
|
|
|
846
846
|
config.provider.siliconflow = {
|
|
847
847
|
npm: '@ai-sdk/openai-compatible',
|
|
848
848
|
name: 'SiliconFlow',
|
|
849
|
-
options: { baseURL: 'https://api.siliconflow.
|
|
849
|
+
options: { baseURL: 'https://api.siliconflow.cn/v1', apiKey: '{env:SILICONFLOW_API_KEY}' },
|
|
850
850
|
models: {}
|
|
851
851
|
}
|
|
852
852
|
} else if (providerKey === 'together') {
|
|
@@ -65,7 +65,9 @@ export const PROVIDER_AUTH_ENDPOINTS = {
|
|
|
65
65
|
fireworks: { url: 'https://api.fireworks.ai/v1/models', method: 'GET' },
|
|
66
66
|
hyperbolic: { url: 'https://api.hyperbolic.xyz/v1/models', method: 'GET' },
|
|
67
67
|
scaleway: { url: 'https://api.scaleway.ai/v1/models', method: 'GET' },
|
|
68
|
-
siliconflow: { url: 'https://api.siliconflow.
|
|
68
|
+
siliconflow: { url: 'https://api.siliconflow.cn/v1/models', method: 'GET' },
|
|
69
|
+
pollinations: null,
|
|
70
|
+
requesty: null,
|
|
69
71
|
together: { url: 'https://api.together.xyz/v1/models', method: 'GET' },
|
|
70
72
|
perplexity: { url: 'https://api.perplexity.ai/v1/models', method: 'GET' },
|
|
71
73
|
chutes: { url: 'https://chutes.ai/v1/models', method: 'GET' },
|
|
@@ -62,6 +62,9 @@ export const ENV_VAR_NAMES = {
|
|
|
62
62
|
routeway: 'ROUTEWAY_API_KEY',
|
|
63
63
|
novita: 'NOVITA_API_KEY',
|
|
64
64
|
'ollama-cloud': 'OLLAMA_API_KEY',
|
|
65
|
+
pollinations: 'POLLINATIONS_API_KEY',
|
|
66
|
+
siliconflow: 'SILICONFLOW_API_KEY',
|
|
67
|
+
requesty: 'REQUESTY_API_KEY',
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
// 📖 OPENCODE_MODEL_MAP: sparse table of model IDs that differ between sources.js and OpenCode's
|
|
@@ -201,13 +204,6 @@ export const PROVIDER_METADATA = {
|
|
|
201
204
|
signupHint: 'Get API key',
|
|
202
205
|
rateLimits: 'Gemini free quotas vary by model and region',
|
|
203
206
|
},
|
|
204
|
-
siliconflow: {
|
|
205
|
-
label: 'SiliconFlow',
|
|
206
|
-
color: chalk.rgb(178, 235, 242),
|
|
207
|
-
signupUrl: 'https://cloud.siliconflow.cn/account/ak',
|
|
208
|
-
signupHint: 'API Keys → Create',
|
|
209
|
-
rateLimits: 'Free models: usually 100 RPM, varies by model',
|
|
210
|
-
},
|
|
211
207
|
together: {
|
|
212
208
|
label: 'Together AI',
|
|
213
209
|
color: chalk.rgb(255, 241, 118),
|
|
@@ -312,6 +308,28 @@ export const PROVIDER_METADATA = {
|
|
|
312
308
|
rateLimits: 'Only zero-price live chat models are listed; other Novita models are paid/trial-credit',
|
|
313
309
|
paidProviderNote: 'paid — 3 free models',
|
|
314
310
|
},
|
|
311
|
+
pollinations: {
|
|
312
|
+
label: 'Pollinations AI ⚠️ experimental',
|
|
313
|
+
color: chalk.rgb(255, 105, 180),
|
|
314
|
+
signupUrl: 'https://enter.pollinations.ai',
|
|
315
|
+
signupHint: 'enter.pollinations.ai → API Keys (free Pollen daily; star github.com/pollinations/pollinations to earn Pollen; 0 Pollen = 402; no purchase needed)',
|
|
316
|
+
rateLimits: 'Free via Pollen (daily grants; ~0.0001-0.003 Pollen/req; 0 Pollen = 402; experimental, system may change)',
|
|
317
|
+
detailedLimits: 'Pollen ≈ $1. Daily free Pollen via tier (seed/flower/nectar) + quests (star repo, help issue). No purchase required. Cost per request 0.0001-0.003 Pollen. If balance is 0.0000, every MISS returns 402 PAYMENT_REQUIRED and the TUI shows 402; HIT (Cloudflare cache) may still return 200 but is not reliable. Check balance at enter.pollinations.ai → API Keys. Grants reset daily at midnight UTC. Integration is experimental and not yet confirmed as stable.',
|
|
318
|
+
},
|
|
319
|
+
siliconflow: {
|
|
320
|
+
label: 'SiliconFlow',
|
|
321
|
+
color: chalk.rgb(178, 235, 242),
|
|
322
|
+
signupUrl: 'https://cloud.siliconflow.cn/account/ak',
|
|
323
|
+
signupHint: 'API Keys → Create (phone SMS verification required)',
|
|
324
|
+
rateLimits: 'Free · 3 models @ $0 · 1000 RPM · 1M tokens/day per model',
|
|
325
|
+
},
|
|
326
|
+
requesty: {
|
|
327
|
+
label: 'Requesty',
|
|
328
|
+
color: chalk.rgb(100, 149, 255),
|
|
329
|
+
signupUrl: 'https://app.requesty.ai/api-keys',
|
|
330
|
+
signupHint: 'API Keys → Create (200 req/day free, no card)',
|
|
331
|
+
rateLimits: 'Free · 200 req/day on free models (20 req/min) · no card',
|
|
332
|
+
},
|
|
315
333
|
'ollama-cloud': {
|
|
316
334
|
label: 'Ollama Cloud',
|
|
317
335
|
color: chalk.rgb(230, 230, 230),
|
|
@@ -61,6 +61,9 @@ export const PROVIDER_CAPABILITIES = {
|
|
|
61
61
|
routeway: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'unknown' },
|
|
62
62
|
novita: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'unknown' },
|
|
63
63
|
'ollama-cloud': { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'rolling' },
|
|
64
|
+
pollinations: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
|
|
65
|
+
siliconflow: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
|
|
66
|
+
requesty: { telemetryType: 'unknown', supportsEndpoint: false, usageDisplay: 'ok', resetCadence: 'daily' },
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
/** Fallback for unrecognized providers */
|
package/src/tui/theme.js
CHANGED
|
@@ -192,6 +192,8 @@ const PROVIDER_PALETTES = {
|
|
|
192
192
|
llm7: [180, 255, 140],
|
|
193
193
|
routeway: [130, 210, 255],
|
|
194
194
|
novita: [255, 185, 120],
|
|
195
|
+
pollinations: [255, 105, 180],
|
|
196
|
+
requesty: [100, 149, 255],
|
|
195
197
|
'ollama-cloud': [230, 230, 230],
|
|
196
198
|
},
|
|
197
199
|
light: {
|
|
@@ -222,6 +224,8 @@ const PROVIDER_PALETTES = {
|
|
|
222
224
|
llm7: [73, 130, 0],
|
|
223
225
|
routeway: [0, 105, 180],
|
|
224
226
|
novita: [173, 84, 0],
|
|
227
|
+
pollinations: [170, 45, 110],
|
|
228
|
+
requesty: [0, 72, 170],
|
|
225
229
|
'ollama-cloud': [88, 88, 88],
|
|
226
230
|
},
|
|
227
231
|
}
|