← All guides · provider record →
OpenCode Zen — free tier setup
What you get free
A curated AI gateway (from the OpenCode team) with five free models: big-pickle, deepseek-v4-flash-free, mimo-v2.5-free, north-mini-code-free, nemotron-3-ultra-free. Per the catalog: "AI gateway with curated models. Free models may use data for improvement." Category: conditional_free — the "price" of the free models is your data: official docs say most Zen models are zero-retention, but free/trial models are the explicit exception and may retain prompts for model improvement. The other gotcha: these are trial-period models (some stealth/alias, like Big Pickle, with the underlying vendor undisclosed) — expect the free list to churn.
Friction check
| Credit card | unknown — official onboarding includes an "add billing details" step, but it's unconfirmed whether it's enforced for free-only usage |
| Phone verification | unknown |
| Org/membership | none |
| Est. time to first key | ~5–10m (4 steps) |
| Trains on your prompts | yes (free models may retain data for improvement) |
Get a key
- Go to
opencode.ai/authand sign in (the official docs onboarding starts here). - Add billing details to your account — this is step 2 of the official flow. Whether you can skip it for free models only is unconfirmed (unconfirmed — verify on first signup).
- Copy your API key from the account/console page (exact page name unconfirmed — verify on first signup).
- (Optional, TUI users) In OpenCode run
/connect, select OpenCode Zen, and paste the key.
First request
One base URL, three endpoint shapes: /zen/v1/chat/completions and /zen/v1/responses (OpenAI-style), /zen/v1/messages (Anthropic-style). Expected success shape: a JSON chat.completion object with choices[0].message.content. Note: docs elsewhere show model ids prefixed as opencode/<model-id>; whether the bare catalog id or the prefixed form is required on the raw API is unconfirmed — try the bare id first (unconfirmed — verify on first request).
export OPENCODE_ZEN_API_KEY="YOUR_KEY"
curl https://opencode.ai/zen/v1/chat/completions \
-H "Authorization: Bearer $OPENCODE_ZEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "big-pickle",
"messages": [{"role": "user", "content": "ping"}],
"max_tokens": 16
}'
Limits that will bite you
- No numeric rate limits are published for the free models — not on the official Zen docs, not in seed repos (catalog:
units: []). Assume unadvertised throttles; back off on 429s. - The data policy is the real limit: free models may retain and train on prompts. Keep sensitive/production traffic off this provider.
- Free model availability is trial-based and can disappear without notice; stealth models (
big-pickle) can be swapped or removed. - Match model family to endpoint shape: OpenAI-format models on
/chat/completionsor/responses, Anthropic-format models on/messages.
Key rotation runbook
- Second key: no multi-key documentation found on the Zen docs page (unconfirmed — verify in the console after signup).
- Revoke: from the same account/console page where the key is shown (unconfirmed — verify on first signup).
- ModelHubby integration:
export OPENCODE_ZEN_API_KEY_2="..."— the key pool picks it up automatically; state machine cools down rate-limited keys per-key.
ModelHubby usage
pnpm modelhubby show opencode-zen
pnpm modelhubby probe --live --provider opencode-zen --apply
