pi-free 1.0.8 → 2.0.0
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/CHANGELOG.md +107 -1
- package/README.md +95 -46
- package/config.ts +165 -120
- package/constants.ts +22 -61
- package/index.ts +186 -0
- package/lib/json-persistence.ts +11 -10
- package/lib/logger.ts +2 -2
- package/lib/model-enhancer.ts +20 -20
- package/lib/open-browser.ts +41 -0
- package/lib/provider-cache.ts +106 -0
- package/lib/registry.ts +144 -0
- package/package.json +67 -82
- package/provider-factory.ts +25 -41
- package/provider-failover/benchmark-lookup.ts +247 -0
- package/provider-failover/benchmarks-chunk-0.ts +2010 -0
- package/provider-failover/benchmarks-chunk-1.ts +1988 -0
- package/provider-failover/benchmarks-chunk-2.ts +2010 -0
- package/provider-failover/benchmarks-chunk-3.ts +2010 -0
- package/provider-failover/benchmarks-chunk-4.ts +1969 -0
- package/provider-failover/hardcoded-benchmarks.ts +22 -10025
- package/provider-helper.ts +38 -37
- package/providers/{cline-auth.ts → cline/cline-auth.ts} +2 -2
- package/providers/cline/cline-models.ts +128 -0
- package/providers/{cline.ts → cline/cline.ts} +300 -257
- package/providers/cloudflare/cloudflare.ts +368 -0
- package/providers/dynamic-built-in/index.ts +513 -0
- package/providers/{kilo-auth.ts → kilo/kilo-auth.ts} +3 -20
- package/providers/{kilo-models.ts → kilo/kilo-models.ts} +2 -2
- package/providers/kilo/kilo.ts +235 -0
- package/providers/{modal.ts → modal/modal.ts} +4 -3
- package/providers/{nvidia.ts → nvidia/nvidia.ts} +152 -113
- package/providers/ollama/ollama.ts +172 -0
- package/providers/opencode-session.ts +34 -34
- package/providers/{qwen-auth.ts → qwen/qwen-auth.ts} +24 -40
- package/providers/{qwen-models.ts → qwen/qwen-models.ts} +101 -95
- package/providers/qwen/qwen.ts +202 -0
- package/provider-failover/auto-switch.ts +0 -350
- package/provider-failover/errors.ts +0 -275
- package/provider-failover/index.ts +0 -238
- package/providers/cline-models.ts +0 -77
- package/providers/factory.ts +0 -125
- package/providers/fireworks.ts +0 -49
- package/providers/go.ts +0 -216
- package/providers/kilo.ts +0 -146
- package/providers/mistral.ts +0 -144
- package/providers/ollama.ts +0 -113
- package/providers/openrouter.ts +0 -175
- package/providers/qwen.ts +0 -127
- package/providers/zen.ts +0 -371
- package/usage/commands.ts +0 -17
- package/usage/cumulative.ts +0 -193
- package/usage/formatters.ts +0 -115
- package/usage/index.ts +0 -46
- package/usage/limits.ts +0 -148
- package/usage/metrics.ts +0 -222
- package/usage/sessions.ts +0 -355
- package/usage/store.ts +0 -99
- package/usage/tracking.ts +0 -329
- package/usage/types.ts +0 -26
- package/usage/widget.ts +0 -90
- package/widget/data.ts +0 -113
- package/widget/format.ts +0 -26
- package/widget/render.ts +0 -117
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,113 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [2.0.0] - 2026-04-23
|
|
9
|
+
|
|
10
|
+
### Breaking Changes
|
|
11
|
+
- **Removed Fireworks provider** — Fireworks is now a built-in Pi provider (added in pi 0.68.1), so the extension's Fireworks provider has been removed to avoid conflicts:
|
|
12
|
+
- Deleted `providers/fireworks/fireworks.ts` and `tests/fireworks.test.ts`
|
|
13
|
+
- Removed all Fireworks configuration options from `config.ts` (`fireworks_api_key`, `fireworks_show_paid`)
|
|
14
|
+
- Users should now use Pi's built-in Fireworks support with `FIREWORKS_API_KEY`
|
|
15
|
+
|
|
16
|
+
- **Renamed Ollama provider to `ollama-cloud`** — Changed provider ID from `"ollama"` to `"ollama-cloud"` to avoid collision with Pi's built-in local Ollama provider:
|
|
17
|
+
- This prevents provider ID conflicts when both are registered
|
|
18
|
+
- All log messages and documentation now reference "Ollama Cloud"
|
|
19
|
+
|
|
20
|
+
### Removed
|
|
21
|
+
- **Dropped `@sinclair/typebox` peer dependency** — Pi 0.69.0 migrated from `@sinclair/typebox` to `typebox` 1.x. The extension didn't directly import this package, so it was removed from `peerDependencies` to avoid potential conflicts.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- **Ollama Cloud API endpoint** — Fixed broken Ollama Cloud integration:
|
|
25
|
+
- Changed `BASE_URL_OLLAMA` from `https://ollama.com` to `https://ollama.com/v1` — the OpenAI-compatible API endpoint
|
|
26
|
+
- Fixed model fetching to use `/v1/models` instead of `/api/tags` — ensures model IDs work with chat completions endpoint
|
|
27
|
+
- Previously calls went to HTML homepage instead of API endpoints, causing 404 errors
|
|
28
|
+
|
|
29
|
+
### Removed
|
|
30
|
+
- **Removed paid model warning on selection** — Deleted the `model_select` event handler that showed:
|
|
31
|
+
- `⚠️ Paid model selected (${model.id}). Use "/free off" to enable paid models.`
|
|
32
|
+
- This warning was redundant since the global `/free` toggle and provider toggles already control model visibility
|
|
33
|
+
|
|
34
|
+
- **Removed pointless `/modal-toggle` command** — Modal provider only has 1 free model (GLM-5.1 FP8), so there was nothing meaningful to toggle:
|
|
35
|
+
- Added `skipToggle` option to `ProviderDefinition` and `ProviderSetupConfig` interfaces
|
|
36
|
+
- Modal provider now sets `skipToggle: true` to prevent toggle command creation
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
- **Marked Qwen provider as fully deprecated** — Updated messaging to clarify the provider is broken:
|
|
40
|
+
- Changed model name from `"Qwen Coder — Free 1k/day"` to `"Qwen Coder — DEPRECATED (free tier discontinued)"`
|
|
41
|
+
- Updated all JSDoc comments to clearly state auth is broken and free tier is no longer available
|
|
42
|
+
- Provider remains for backward compatibility but should not be used
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- **Cloudflare Workers AI provider** — New provider for Cloudflare's serverless GPU platform:
|
|
46
|
+
- 50+ open-source models: Llama 4, Mistral Small 3.1, Qwen 2.5/3, DeepSeek R1, Gemma 4, Kimi K2.5/2.6, and more
|
|
47
|
+
- **10,000 Neurons/day FREE tier** (resets daily at 00:00 UTC)
|
|
48
|
+
- **$0.011 per 1,000 Neurons** beyond free allocation
|
|
49
|
+
- Only requires `CLOUDFLARE_API_TOKEN` — account ID auto-derived from token
|
|
50
|
+
- Toggle with `/cloudflare-toggle`
|
|
51
|
+
- Create token at https://dash.cloudflare.com/profile/api-tokens
|
|
52
|
+
|
|
53
|
+
- **Unified dynamic built-in providers module** — New `providers/dynamic-built-in/` module that dynamically fetches models from Pi's built-in providers when users have API keys:
|
|
54
|
+
- **Mistral** (`MISTRAL_API_KEY`) — Fetches from `api.mistral.ai/v1/models`
|
|
55
|
+
- **Groq** (`GROQ_API_KEY`) — Fetches from `api.groq.com/openai/v1/models`
|
|
56
|
+
- **Cerebras** (`CEREBRAS_API_KEY`) — Fetches from `api.cerebras.ai/v1/models`
|
|
57
|
+
- **xAI** (`XAI_API_KEY`) — Fetches from `api.x.ai/v1/models`
|
|
58
|
+
- **Hugging Face** (`HF_TOKEN` — optional) — Fetches public + authenticated models
|
|
59
|
+
- **OpenRouter** — Moved from `index.ts` to unified module with dynamic fetch
|
|
60
|
+
- All integrate with global `/free` toggle and have per-provider toggle commands (`/mistral-toggle`, `/groq-toggle`, etc.)
|
|
61
|
+
|
|
62
|
+
- **Global `/free` toggle system** — New centralized free/paid filtering across ALL providers:
|
|
63
|
+
- `/free on/off/status` — Toggle free-only view globally
|
|
64
|
+
- `/free-providers` — Show free/paid model counts by provider
|
|
65
|
+
- `FREE_ONLY` config option and `PI_FREE_ONLY` environment variable
|
|
66
|
+
- Providers register via `registerWithGlobalToggle()` for unified filtering
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
- **Toggle commands now actually filter models from UI** — Previously, toggle commands only showed notifications but didn't remove paid models from the model picker:
|
|
70
|
+
- **OpenRouter (`/openrouter-toggle`)**: Now uses `registerProvider`/`unregisterProvider` to actually filter models from the picker UI
|
|
71
|
+
- **NVIDIA (`/nvidia-toggle`)**: Added dynamic `showPaid` parameter to `fetchNvidiaModels()` so toggle properly switches between free and paid model sets
|
|
72
|
+
- **Fireworks**: Removed broken toggle command — all models are paid with no free tier, so there was nothing to toggle
|
|
73
|
+
|
|
74
|
+
### Added
|
|
75
|
+
- **OpenRouter per-provider free model toggle** — Added `/openrouter-toggle` command for the built-in OpenRouter provider:
|
|
76
|
+
- `/openrouter-toggle` — Switch between showing only free models vs all models (including paid)
|
|
77
|
+
- New config flag `openrouter_show_paid` in `~/.pi/free.json` (default: `false`)
|
|
78
|
+
- Environment variable: `OPENROUTER_SHOW_PAID=true` to show paid models by default
|
|
79
|
+
- This brings OpenRouter (a built-in pi provider) in line with extension providers that have per-provider toggles
|
|
80
|
+
|
|
81
|
+
### Deprecated
|
|
82
|
+
- **Qwen provider** — The 1,000 requests/day free tier is no longer available from Qwen/DashScope. The provider code remains for backward compatibility but is now deprecated:
|
|
83
|
+
- Added `@deprecated` JSDoc tags to all Qwen-related exports
|
|
84
|
+
- Added deprecation warning when Qwen provider loads
|
|
85
|
+
- Added warning when `QWEN_SHOW_PAID` config is used
|
|
86
|
+
- Consider migrating to other free providers: Kilo, Cline, NVIDIA, or Modal
|
|
87
|
+
|
|
88
|
+
### Added
|
|
89
|
+
- **Go provider** — OpenCode Go subscription gateway (⚠️ paid only — $5 first month, then $10/month, no free tier) with models: GLM-5, Kimi K2.5, MiMo-V2-Pro, MiMo-V2-Omni, MiniMax M2.7, MiniMax M2.5
|
|
90
|
+
- Set `OPENCODE_GO_API_KEY` or `opencode_go_api_key` in `~/.pi/free.json`
|
|
91
|
+
- Toggle with `/go-toggle`
|
|
92
|
+
|
|
93
|
+
### Fixed
|
|
94
|
+
- **All providers now show Coding Index scores in model selector** — Added `enhanceWithCI()` to factory-based providers (nvidia, fireworks, mistral, modal, ollama) and cline. Now all providers display CI scores in `/models` command (pi-models extension).
|
|
95
|
+
|
|
96
|
+
- **All providers now show in `--list-models`** — Providers (zen, openrouter, go) that registered models only in `session_start` were missing from `pi --list-models` which runs before session starts. Added immediate registration for these providers:
|
|
97
|
+
- **zen**: Added model caching to `~/.pi/provider-cache.json` for immediate registration + dynamic refresh
|
|
98
|
+
- **openrouter**: Immediate model registration at extension load (like kilo/cline)
|
|
99
|
+
- **go**: Immediate registration with static model list (no API to fetch from)
|
|
100
|
+
- All 11 providers now visible in `--list-models`
|
|
101
|
+
|
|
102
|
+
### Changed
|
|
103
|
+
- Updated README with clear free vs paid provider distinction (9 free + 2 paid-only: Go, Fireworks)
|
|
104
|
+
- Added Go and Fireworks provider documentation under new "💳 Paid-Only Providers" section
|
|
105
|
+
- Added `opencode_go_api_key` to config file template
|
|
106
|
+
- Updated package.json description and keywords to include all 11 providers
|
|
107
|
+
|
|
108
|
+
### Added
|
|
109
|
+
- **Provider model cache** (`lib/provider-cache.ts`) — New utility for caching provider model lists to `~/.pi/provider-cache.json`. Used by zen provider for faster startup and offline access after first successful fetch.
|
|
110
|
+
|
|
111
|
+
## [1.0.9] - 2026-04-14
|
|
112
|
+
|
|
113
|
+
### Fixed
|
|
114
|
+
- **Qwen OAuth breaks other OAuth providers** — `modifyModels` receives all models across every registered provider, not just Qwen's. The previous `map()` stamped the Qwen dashscope `baseUrl` onto every model, causing other OAuth providers (Kilo, OpenRouter, etc.) to return 404 after a `/login qwen` flow. Now only models with `provider === PROVIDER_QWEN` are patched; others pass through unchanged.
|
|
9
115
|
|
|
10
116
|
## [1.0.8] - 2026-04-13
|
|
11
117
|
|
package/README.md
CHANGED
|
@@ -6,13 +6,13 @@ Free AI model providers for [Pi](https://pi.dev). Access **free models** from mu
|
|
|
6
6
|
|
|
7
7
|
## What does pi-free do
|
|
8
8
|
|
|
9
|
-
**pi-free is a Pi extension that unlocks free AI models from
|
|
9
|
+
**pi-free is a Pi extension that unlocks free AI models from 9 providers — and adds 2 paid providers for convenience.**
|
|
10
10
|
|
|
11
11
|
When you install pi-free, it:
|
|
12
12
|
|
|
13
|
-
1. **Registers
|
|
13
|
+
1. **Registers 10+ AI providers** with Pi's model picker — 9 unique free-tier providers plus dynamic providers for Pi's built-in services when API keys are configured
|
|
14
14
|
|
|
15
|
-
2. **Filters to show only free models by default** — You see only the models that cost $0 to use, no API key required for some providers
|
|
15
|
+
2. **Filters to show only free models by default** — You see only the models that cost $0 to use, no API key required for some providers. Paid-only providers are hidden until you explicitly enable them.
|
|
16
16
|
|
|
17
17
|
3. **Provides a toggle command** — Run `/{provider}-toggle` (e.g., `/zen-toggle`, `/kilo-toggle`) to switch between free-only mode and showing all models including paid ones
|
|
18
18
|
|
|
@@ -37,30 +37,48 @@ pi install git:github.com/apmantza/pi-free
|
|
|
37
37
|
Start Pi and press `Ctrl+L` to open the model picker.
|
|
38
38
|
|
|
39
39
|
Free models are shown by default — look for the provider prefixes:
|
|
40
|
+
|
|
41
|
+
**✅ Offers Free Models (no usage limits, no payment required):**
|
|
40
42
|
- `zen/` — OpenCode Zen models (no setup required)
|
|
41
43
|
- `kilo/` — Kilo models (free models available immediately, more after `/login kilo`)
|
|
42
44
|
- `openrouter/` — OpenRouter models (free account required)
|
|
43
|
-
- `nvidia/` — NVIDIA NIM models (free API key required)
|
|
44
45
|
- `cline/` — Cline models (run `/login cline` to use)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- `
|
|
48
|
-
- `
|
|
46
|
+
|
|
47
|
+
**🔄 Freemium (free tier with limits, then paid):**
|
|
48
|
+
- `nvidia/` — NVIDIA NIM models (1,000 free requests/month, then credits)
|
|
49
|
+
- `cloudflare/` — Cloudflare Workers AI (10K Neurons/day free tier, then $0.011/1K Neurons)
|
|
50
|
+
- `modal/` — GLM-5.1 FP8 via Modal (free promotional period until April 30, 2026)
|
|
51
|
+
- `ollama/` — Ollama Cloud models (usage-based free tier, resets every 5 hours + 7 days)
|
|
52
|
+
|
|
53
|
+
**🔧 Dynamic API Providers (free models when API key configured):**
|
|
54
|
+
- `mistral/` — Mistral models (free models via API when `MISTRAL_API_KEY` set)
|
|
55
|
+
- `groq/` — Groq models (free models via API when `GROQ_API_KEY` set)
|
|
56
|
+
- `cerebras/` — Cerebras models (free models via API when `CEREBRAS_API_KEY` set)
|
|
57
|
+
|
|
58
|
+
**💳 Paid Only (no free tier):**
|
|
59
|
+
- `go/` — OpenCode Go models (requires subscription — $5 first month, then $10/month)
|
|
60
|
+
|
|
61
|
+
**Note:** Fireworks is now a [built-in Pi provider](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/CHANGELOG.md#0681---2026-04-22) — no extension needed. Set `FIREWORKS_API_KEY` to use it directly.
|
|
49
62
|
|
|
50
63
|
### 3. Toggle between free and paid models
|
|
51
64
|
|
|
52
65
|
Want to see paid models too? Run the toggle command for your provider:
|
|
53
66
|
|
|
54
67
|
```
|
|
55
|
-
/zen-toggle
|
|
56
|
-
/kilo-toggle
|
|
57
|
-
/openrouter-toggle # Toggle OpenRouter free
|
|
58
|
-
/
|
|
59
|
-
/
|
|
60
|
-
/
|
|
61
|
-
/
|
|
68
|
+
/zen-toggle # Toggle Zen (✅ offers free models)
|
|
69
|
+
/kilo-toggle # Toggle Kilo (✅ offers free models)
|
|
70
|
+
/openrouter-toggle # Toggle OpenRouter (✅ offers free models)
|
|
71
|
+
/cline-toggle # Toggle Cline (✅ offers free models)
|
|
72
|
+
/mistral-toggle # Toggle Mistral (🔧 dynamic - needs API key)
|
|
73
|
+
/groq-toggle # Toggle Groq (🔧 dynamic - needs API key)
|
|
74
|
+
/cerebras-toggle # Toggle Cerebras (🔧 dynamic - needs API key)
|
|
62
75
|
```
|
|
63
76
|
|
|
77
|
+
**Notes:**
|
|
78
|
+
- **Toggle commands are mainly for ✅ Offers Free Models providers** — to switch between "free models only" vs "show paid models too"
|
|
79
|
+
- **🔄 Freemium providers** (NVIDIA, Cloudflare, Ollama, Modal) show all models by default — you manage your usage limits via their dashboards
|
|
80
|
+
- **💳 Paid-only providers** (Go) have no toggle since all models require payment
|
|
81
|
+
|
|
64
82
|
You'll see a notification like: `zen: showing free models` or `zen: showing all models (including paid)`
|
|
65
83
|
|
|
66
84
|
### 4. Add API keys for more providers (optional)
|
|
@@ -77,13 +95,15 @@ Add your API keys to this file:
|
|
|
77
95
|
{
|
|
78
96
|
"openrouter_api_key": "sk-or-v1-...",
|
|
79
97
|
"nvidia_api_key": "nvapi-...",
|
|
98
|
+
"cloudflare_api_token": "...",
|
|
80
99
|
"ollama_api_key": "...",
|
|
81
|
-
"fireworks_api_key": "...",
|
|
82
100
|
"mistral_api_key": "...",
|
|
83
101
|
"modal_api_key": "sk-modal-..."
|
|
84
102
|
}
|
|
85
103
|
```
|
|
86
104
|
|
|
105
|
+
**Note:** Fireworks is now a [built-in Pi provider](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/CHANGELOG.md#0681---2026-04-22) — no extension needed. Set `FIREWORKS_API_KEY` to use it directly.
|
|
106
|
+
|
|
87
107
|
Or set environment variables instead (same names, uppercase: `OPENROUTER_API_KEY`, `NVIDIA_API_KEY`, etc.)
|
|
88
108
|
|
|
89
109
|
See the [Providers That Need Authentication](#providers-that-need-authentication) section below for detailed setup instructions per provider.
|
|
@@ -95,10 +115,8 @@ See the [Providers That Need Authentication](#providers-that-need-authentication
|
|
|
95
115
|
| `/{provider}-toggle` | Switch between free-only and all models for that provider |
|
|
96
116
|
| `/login kilo` | Start OAuth flow for Kilo |
|
|
97
117
|
| `/login cline` | Start OAuth flow for Cline |
|
|
98
|
-
| `/login qwen` | Start OAuth flow for Qwen |
|
|
99
118
|
| `/logout kilo` | Clear Kilo OAuth credentials |
|
|
100
119
|
| `/logout cline` | Clear Cline OAuth credentials |
|
|
101
|
-
| `/logout qwen` | Clear Qwen OAuth credentials |
|
|
102
120
|
|
|
103
121
|
---
|
|
104
122
|
|
|
@@ -141,7 +159,11 @@ Free tier resets every 5 hours + 7 days.
|
|
|
141
159
|
|
|
142
160
|
## Providers That Need Authentication
|
|
143
161
|
|
|
144
|
-
Some providers require free accounts or OAuth to access their free tiers
|
|
162
|
+
Some providers require free accounts or OAuth to access their free tiers. **Go is a paid-only provider — it has no free tier.**
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### 🆓 Free Providers
|
|
145
167
|
|
|
146
168
|
### Kilo (free models, more after login)
|
|
147
169
|
|
|
@@ -214,7 +236,31 @@ Or in `~/.pi/free.json`:
|
|
|
214
236
|
|
|
215
237
|
Toggle anytime with `/nvidia-toggle`
|
|
216
238
|
|
|
217
|
-
###
|
|
239
|
+
### Cloudflare Workers AI (10K Neurons/day Free Tier)
|
|
240
|
+
|
|
241
|
+
Cloudflare provides **50+ open-source AI models** with a generous free tier:
|
|
242
|
+
- **10,000 Neurons per day FREE** (resets daily at 00:00 UTC)
|
|
243
|
+
- **$0.011 per 1,000 Neurons** beyond the free allocation
|
|
244
|
+
|
|
245
|
+
Get your API token at [dash.cloudflare.com/profile/api-tokens](https://dash.cloudflare.com/profile/api-tokens):
|
|
246
|
+
1. Create a token with "Cloudflare AI" → "Read" permission
|
|
247
|
+
2. Or use "My Account" → "Read" for broader access
|
|
248
|
+
|
|
249
|
+
**Setup:**
|
|
250
|
+
```bash
|
|
251
|
+
export CLOUDFLARE_API_TOKEN="your_token_here"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
The account ID is automatically derived from your token. Optionally, you can also set:
|
|
255
|
+
```bash
|
|
256
|
+
export CLOUDFLARE_ACCOUNT_ID="your_account_id" # Optional
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**Models available:** Llama 4, Mistral Small 3.1, DeepSeek R1, Gemma 4, Kimi K2.5/2.6, and more.
|
|
260
|
+
|
|
261
|
+
Toggle with `/cloudflare-toggle`
|
|
262
|
+
|
|
263
|
+
### Cline (free account)
|
|
218
264
|
|
|
219
265
|
Cline models appear immediately in the model picker. To use them, authenticate with Cline's free account:
|
|
220
266
|
|
|
@@ -230,7 +276,7 @@ This command will:
|
|
|
230
276
|
- Free account required (no credit card)
|
|
231
277
|
- Uses local ports 48801-48811 for OAuth callback
|
|
232
278
|
|
|
233
|
-
### Modal (GLM-5.1 FP8 — free until April 30, 2026)
|
|
279
|
+
### Modal (GLM-5.1 FP8 — free promotional period until April 30, 2026)
|
|
234
280
|
|
|
235
281
|
Modal hosts GLM-5.1 FP8 with a free promotional period. Get an API key at [modal.com](https://modal.com), then:
|
|
236
282
|
|
|
@@ -253,7 +299,7 @@ Then select a `modal/` model in the model picker.
|
|
|
253
299
|
- Model: GLM-5.1 FP8 (128k context, 16k max output)
|
|
254
300
|
- No credit card required during the promotional period
|
|
255
301
|
|
|
256
|
-
### Mistral
|
|
302
|
+
### Mistral (free API key)
|
|
257
303
|
|
|
258
304
|
Add API key to `~/.pi/free.json` or environment variables:
|
|
259
305
|
|
|
@@ -261,27 +307,29 @@ Add API key to `~/.pi/free.json` or environment variables:
|
|
|
261
307
|
export MISTRAL_API_KEY="..."
|
|
262
308
|
```
|
|
263
309
|
|
|
264
|
-
|
|
310
|
+
---
|
|
265
311
|
|
|
266
|
-
|
|
312
|
+
### 💳 Paid-Only Providers
|
|
267
313
|
|
|
268
|
-
|
|
269
|
-
/login qwen
|
|
270
|
-
```
|
|
314
|
+
> **⚠️ These providers have no free tier. All usage incurs costs.**
|
|
271
315
|
|
|
272
|
-
|
|
273
|
-
1. Open your browser to Qwen Studio's authorization page
|
|
274
|
-
2. Display a device code (enter it if the browser doesn't pre-fill it)
|
|
275
|
-
3. Wait for you to authorize in the browser
|
|
276
|
-
4. Automatically complete login once approved
|
|
316
|
+
### OpenCode Go (subscription — $5 first month, then $10/month)
|
|
277
317
|
|
|
278
|
-
|
|
318
|
+
Go provides access to curated open coding models via a monthly subscription. There is no free tier.
|
|
279
319
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
320
|
+
Set `OPENCODE_GO_API_KEY` (or `opencode_go_api_key` in `~/.pi/free.json`) and `GO_SHOW_PAID=true` to enable.
|
|
321
|
+
|
|
322
|
+
**Models available:**
|
|
323
|
+
- GLM-5
|
|
324
|
+
- Kimi K2.5
|
|
325
|
+
- MiMo-V2-Pro
|
|
326
|
+
- MiMo-V2-Omni
|
|
327
|
+
- MiniMax M2.7
|
|
328
|
+
- MiniMax M2.5
|
|
329
|
+
|
|
330
|
+
**Pricing:** $5 first month, then $10/month. See [opencode.ai/docs/go](https://opencode.ai/docs/go).
|
|
331
|
+
|
|
332
|
+
Toggle with `/go-toggle`.
|
|
285
333
|
|
|
286
334
|
---
|
|
287
335
|
|
|
@@ -294,18 +342,19 @@ Each provider has toggle commands to switch between free and all models:
|
|
|
294
342
|
| `/zen-toggle` | Toggle between free/all Zen models |
|
|
295
343
|
| `/kilo-toggle` | Toggle between free/all Kilo models |
|
|
296
344
|
| `/openrouter-toggle` | Toggle between free/all OpenRouter models |
|
|
297
|
-
| `/
|
|
298
|
-
| `/
|
|
299
|
-
| `/
|
|
300
|
-
| `/
|
|
301
|
-
| `/login qwen` | Authenticate with Qwen Studio (OAuth) |
|
|
302
|
-
| `/logout qwen` | Clear Qwen credentials |
|
|
345
|
+
| `/cline-toggle` | Toggle between free/all Cline models (✅ offers free models) |
|
|
346
|
+
| `/mistral-toggle` | Toggle between free/all Mistral models (🔧 dynamic) |
|
|
347
|
+
| `/groq-toggle` | Toggle between free/all Groq models (🔧 dynamic) |
|
|
348
|
+
| `/cerebras-toggle` | Toggle between free/all Cerebras models (🔧 dynamic) |
|
|
303
349
|
|
|
304
350
|
**The toggle command:**
|
|
305
|
-
- Switches between showing only free models vs. all available models
|
|
351
|
+
- **For ✅ Offers Free Models providers**: Switches between showing only free models vs. all available models (including paid)
|
|
352
|
+
- **For 🔧 Dynamic API providers**: Filters the model list when you have an API key configured
|
|
306
353
|
- **Persists your preference** to `~/.pi/free.json` for next startup
|
|
307
354
|
- Shows a notification: "zen: showing free models" or "zen: showing all models (including paid)"
|
|
308
355
|
|
|
356
|
+
**Note:** 🔄 Freemium providers (NVIDIA, Cloudflare, Ollama Cloud, Modal) don't have toggle commands — they show all models and you manage usage via their dashboards. 💳 Paid-only providers (Go) also have no toggle since all models require payment.
|
|
357
|
+
|
|
309
358
|
---
|
|
310
359
|
|
|
311
360
|
## Configuration
|
|
@@ -316,9 +365,9 @@ Create `~/.pi/free.json` in your home directory:
|
|
|
316
365
|
{
|
|
317
366
|
"openrouter_api_key": "YOUR_OPENROUTER_KEY",
|
|
318
367
|
"nvidia_api_key": "YOUR_NVIDIA_KEY",
|
|
319
|
-
"fireworks_api_key": "YOUR_FIREWORKS_KEY",
|
|
320
368
|
"mistral_api_key": "YOUR_MISTRAL_KEY",
|
|
321
369
|
"opencode_api_key": "YOUR_ZEN_KEY",
|
|
370
|
+
"opencode_go_api_key": "YOUR_GO_KEY",
|
|
322
371
|
"ollama_api_key": "YOUR_OLLAMA_KEY",
|
|
323
372
|
"ollama_show_paid": true,
|
|
324
373
|
"modal_api_key": "YOUR_MODAL_KEY",
|