OpenCode

OpenCode free models: limits, resets, and trade-offs

Free models in OpenCode are time-limited and provider-dependent. Learn what free covers, where the ceiling appears, and how to check it before a long run.

Quick answer

Free models in OpenCode are free because a provider or OpenCode's own gateway subsidises them for a limited time. There is no single published allowance or reset clock: quotas are per model and can change or disappear. Check the model list and the console before relying on one for a long session.

Free is a promotion, not a plan

A free model in OpenCode is not one product with one policy. It is a label on a model that someone else is paying to serve, usually for a limited window while the provider gathers feedback or tests capacity. When the promotion ends, the model either disappears from the list, moves behind a paid key, or starts counting against a paid balance.

The model list is the place to look. Models served by OpenCode's own gateway are marked free while the offer lasts, and the documentation notes that availability, regions, and data-retention terms differ between them. Some are zero-retention, some explicitly retain prompts to improve the model, and a few are blocked in entire regions. Free is a price, not a privacy guarantee.

Free models routed through the gateway are also intended for use inside OpenCode. Calling the same endpoints from another client is generally restricted to paid models, so a free key is not a general-purpose API key. If a script outside OpenCode fails with a free model, that is the likely reason.

Where the ceiling actually appears

There is no universal messages-per-hour figure to quote, because the enforcement point is different for each source of free usage.

Source of free usageWho enforces the limitWhere you see itDoes it reset?
OpenCode gateway free modelOpenCodeRate-limit error in the TUI, model list, consoleUsually yes, but the schedule is not published as a fixed count
Provider free tier with your own keyThat providerProvider dashboard and error bodyOn the provider's own quota clock
Local model via Ollama or similarYour hardwareNothing is meteredNo quota, but tokens per second become the limit
Paid provider keyThat providerProvider billing pageOn the provider's billing cycle

Read the error before you retry. A 429 with a retry hint is a rate limit. A message about credits or an exhausted allowance is a budget. They need different responses, and retrying a budget error just wastes time.

If your version of OpenCode has free models you would rather not see, OPENCODE_DISABLE_FREE_MODELS=1 hides them from the picker. That is useful in a team setting where a free model's data-retention terms do not match your policy.

Working around a free-tier stop

  1. Switch to another free model first. Each has its own quota and its own reset.
  2. Drop to a paid model on a key you already hold, and check its price before a long agent run.
  3. Use OpenCode Go if you want a predictable monthly dollar ceiling across several models.
  4. Fall back to a local model for mechanical edits where quality matters less than availability.

The practical habit is to check the model list at the start of a session, not in the middle of one. Free availability changes weekly, and a model that worked yesterday may be gone or region-blocked today.

Track the spend even when the model is free. A free model that disappears mid-task still consumed tokens, and the record explains why a week looks unusual later. UsageAtlas stores those rows locally, and the model usage guide shows how to compare a free model against a paid one on the same kind of task. For paid plans, the limit reset guide explains the three windows.

Questions, answered

Do OpenCode free models have a daily reset?

Some do and some do not. The schedule belongs to whichever provider serves the model, and OpenCode does not publish a single reset time for all free models. Check the error text and the model list.

Are free models in OpenCode private?

Not uniformly. Each free model lists its own retention and training terms, and some retain prompts during the free period. Read the model's entry before sending proprietary code.

What happens when a free model is removed?

It stops appearing in the model picker and requests to it fail. Sessions that used it keep their historical records, so your token history stays intact.

Browse by topic