OpenCode 2 v2.1.2: hide free models, idle-unload project locations#
Published by Alex Sorokoletov
Part of the OpenCode 2 Version Tracker series. | OpenCode on GitHub | OpenCode 2 docs
OpenCode 2 v2.1.2 follows v2.1.1. A new OPENCODE_DISABLE_FREE_MODELS variable hides free models from the model list (#57478), the experimental location_idle_timeout config unloads a project location after it sits idle (#57476), and the terminal and app render the free-tier usage limit with a reset time and prompt recall (#57146, #57467).
Hiding free models#
| Variable | What It Does |
|---|---|
OPENCODE_DISABLE_FREE_MODELS | Hides free models from the model list. |
The model list carries free models alongside their paid counterparts. OPENCODE_DISABLE_FREE_MODELS drops the free entries so the picker shows only paid models (#57478).
Idle project locations#
A project location is the per-project unit OpenCode loads and unloads.[1] The experimental location_idle_timeout config key unloads a project location after a stretch without session activity, with a 60-minute default that project config can override (#57476).[1] Running sessions and background jobs keep a location loaded, and a related fix keeps locations that have either one from unloading (#57416). In the terminal, a location reads as unavailable only when the server reports it missing (#57594).
Free usage limit in the terminal and app#
Several changes land the free-tier usage limit across both clients. The core carries a typed free-limit error that includes the reset time (#57146). The terminal shows a free-limit notice and recalls the prompt (#57467); the app carries a free-tier usage-limit dialog, a timeline line, and prompt recall (#57466); and an upsell modal appears when a user reaches the free usage limit (#57471).
Fixes across install, desktop, and providers#
- The installer creates
~/.zshrcwhen it is missing, soopencodelands onPATH(#57348). - The desktop app upgrades Electron to 44.9.1 (#57533).
- OpenAI realtime client secrets send an
expires_after.anchorfield (#57514). - Provider session errors forward
retryAfterMs(#57589). - codemode runs each job to completion (#54276).
- A failed stats sync retries instead of waiting an hour (#57516).
The server owns the location and the limit; clients show what it reports#
The free-tier usage limit resolves in the core, which hands clients a typed error carrying the reset time (#57146). A user watching the same account from the terminal and the desktop app sees the same limit and the same reset moment, since both surfaces render that one value.
Project locations follow the same shape. location_idle_timeout lets a location unload on its own after idle time (#57476), while a running session or a background job holds one loaded (#57416). Because the terminal marks a location unavailable only when the server reports it missing (#57594), a project that idles out and loads again later shows up as whatever state the server holds, so an idle unload stays quiet in the terminal.
All trademarks and software referenced belong to their respective owners.
Sources#
- Project locations and
location_idle_timeout: OpenCode 2 docs, config.
Previous OpenCode 2 analysis: v2.1.1 (October 20, 2026)
All 18 OpenCode 2 analyses: OpenCode 2 Version Tracker · Official OpenCode 2 changelog