跪拜 Guibai
← All articles
Backend · Java · Programmer

opencode v2.x Free Tier Dries Up After One Conversation: A Metering Change Breaks the Daily Quota

By SimonKing ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Developers who relied on opencode's free tier for daily AI coding tasks will find their quota drained after a single conversation, forcing a move to BYOK or paid plans. The rolling-budget metering and fat-session problem reveal the real cost of agent-style workflows, a cost that other free-tier AI tools will likely face.

Summary

opencode's v2.x release has turned the free tier from a workable resource into a one-hour stopgap. Users report that a single conversation can exhaust the entire daily free quota, and the issues tracker for anomalyco/opencode is overflowing with complaints. The trigger is a change in how the quota is metered: instead of a simple daily per-request count, v2 uses a rolling budget that deducts based on token consumption and request characteristics.

An issue #58751 reporter pulled their local sqlite database and found that an old session with 447k tokens of assembled context returned provider.free-limit on every build, while a fresh 23k-token session succeeded seconds later. That points to a rolling bucket at its boundary, not a hard cap. Meanwhile, v2 agents read more files, carry fuller LSP context, and rely on auto-compaction, so a single build request can assemble hundreds of thousands of tokens. Even automatic title generation calls hit the free pool, with one log showing the main model at 'Free usage limit reached' while the title model reported 'Insufficient account funds' within the same second.

Two rounds with DeepSeek v4.1 flash after upgrading to 2.2.5 used up the quota. The maintainers haven't fixed it yet, and free-tier models are now either rate-limited or degraded, pushing developers toward BYOK for stable work.

Takeaways
— opencode 2.2.5 no longer works with older versions; after downloading from the official site, users are forced to upgrade.
— v2.x separates free models into a dedicated list, but the free tier is now metered via a rolling budget based on tokens and request characteristics instead of a daily per-request count.
— An old session with 985 user messages and 447k tokens of assembled context returns provider.free-limit on every build, while a fresh 23k-token session succeeds in the same minute.
— v2 agents read more files, carry more complete LSP context, and auto-compact long sessions, so a single build request can consume hundreds of thousands of tokens.
— Invisible model calls like automatic title generation hit the free tier; one log shows the main model reporting 'Free usage limit reached' while the title model reports 'Insufficient account funds' in the same second.
— Issues #58176 and #58521 document that free-tier title generation is rejected with 403 FreeTierError.
— The maintainers have not fixed the issue as of writing, and free models are now either rate-limited or reduced in quality, pushing users toward BYOK.
Conclusions

The switch to a rolling token budget rather than a daily counter is a service-side decision that matches real processing costs, but it breaks the assumption that a free tier resets predictably every day.

Agentic workflows generate many hidden small model calls beyond the main prompt; title generation alone can tip a session over the free limit, making quota exhaustion seem sudden and arbitrary.

The backlash in GitHub issues suggests opencode underestimated how much heavy users rely on the free tier, and the current throttling may push them to BYOK or rivals.

Concepts & terms
BYOK
Bring Your Own Key. Users supply their own API keys for model providers, sidestepping the service's free tier and its rate limits.
Rolling budget
A rate-limiting mechanism that tracks token or request usage over a sliding time window, deducting from a pool that depletes as usage accumulates, rather than resetting at a fixed daily count.
Auto-compaction
A technique in long AI sessions that summarizes or drops old conversation context to keep the total token count within a limit, allowing the session to continue without exceeding the model's context window.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗