One of the four models on opencode’s free list in January 2026 was still free in July. Grok Code Fast 1, GLM 4.7, and MiniMax M2.1 are gone. Only Big Pickle survived. The agent itself is MIT-licensed and free forever, but the models are on loan, and the loan has no visible expiry date.
That makes the real cost of adopting opencode a question about the morning your free model stops answering. You can price that today.
Definitions
opencode - an open source AI coding agent (MIT, maintained by Anomaly) that runs as a terminal interface, desktop app, or IDE extension. It is a harness, not a model.
Harness - the scaffolding around a model: prompt construction, tool definitions, file editing, and the agentic loop. Swap the model and the same harness performs differently, which is why benchmarks grade the pair rather than either alone.
opencode Zen - opencode’s own model gateway: a curated set of models the team has tested and benchmarked for coding agents, billed pay-as-you-go. Optional. You can bring any provider instead.
Prompt cache invalidation - a prompt cache is a prefix match on exact bytes. Change anything above the cache marker and every token after it is billed fresh. See cache-stable prefix for the rule in one paragraph.
What is free today, and what was free in January
| Date | Zen free models | Source |
|---|---|---|
| Jan 2026 | Grok Code Fast 1, GLM 4.7, MiniMax M2.1, Big Pickle | opencode issue #7479 |
| Jul 2026 | Big Pickle, MiMo-V2.5, Laguna S 2.1, Ling-3.0-flash, North Mini Code, Nemotron 3 Ultra, DeepSeek V4 Flash | opencode Zen docs |
One model out of four survived six months. The list also grew, which is the part that makes the churn easy to miss: there is always something free, so nothing looks broken until the specific model you tuned your prompts against stops answering.
The docs are not hiding this. Each free entry carries the same note, that the model is “available on opencode for a limited time” while the team behind it collects feedback and improves it. That is the actual transaction. You get frontier-adjacent inference at no cost; the vendor gets evaluation data from real coding work. Some free models also permit data retention for training during the trial, which is a separate decision from cost and deserves its own answer before you point the agent at client code.
Sometimes the rotation hands you something worth having. DeepSeek V4 Flash is on the current list, and it implements a specification well while reasoning about architecture badly, which the DeepSeek V4 Flash breakdown covers in detail. That splits agent work into two roles: a planner that decides what to build, and an executor that writes the code the plan specifies. Being free does not promote Flash from executor to planner. It only makes the executor role cheaper to run.
Price the fallback before you need it
When a free model rotates out, you land on Zen’s paid rates or on your own provider key. Zen is pay-as-you-go per million tokens.
| Model | Input | Output |
|---|---|---|
| Claude Haiku 4.5 | $1.00 | $5.00 |
| Claude Sonnet 5 | $2.00 | $10.00 |
| Claude Opus 5 | $5.00 | $25.00 |
| Gemini 3.5 Flash | $1.50 | $9.00 |
| GPT 5.6 Sol (up to 272K context) | $5.00 | $30.00 |
| GPT 5.6 Sol (over 272K context) | $10.00 | $45.00 |
Card fees are passed through at cost, 4.4% plus $0.30 per transaction, and auto-reload fires when the balance drops to $5. Zen’s Claude rates sit at the same level as Anthropic’s published prices for the equivalent tiers, so the gateway is not where the markup hides. Which tier you actually need is the expensive decision, and most agents default to the wrong one.
You can skip Zen entirely. opencode supports 75+ providers through models.dev, including local models, and /connect also authenticates against a GitHub Copilot or ChatGPT Plus/Pro subscription so a plan you already pay for covers the tokens. Claude Pro/Max is the exception worth knowing before you switch from Claude Code. Third-party plugins exist that route a Claude Pro/Max subscription into opencode, and opencode’s own documentation states that Anthropic explicitly prohibits this. opencode stopped bundling those plugins in its 1.3.0 release.
Pin the model you actually meant to use
Config lives in opencode.json at the project root or ~/.config/opencode/opencode.json globally. Two keys matter for cost control:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-4-5",
"small_model": "lmstudio/google/gemma-3n-e4b"
}
model is your main agent. small_model handles lightweight work such as generating session titles. Leave it unset and opencode picks a cheaper model from your provider on its own, which means a request can leave your machine even when your main model is local. If a local-only data path is the reason you chose local inference, small_model is the leak, and pointing it at your own endpoint closes it.
Free model ids rotate along with the list, so run /models to read the current ones rather than copying an id out of any article, including this one.
What opencode costs you that is not tokens
One cost is verified and fixed. The environment() function in system.ts listed roughly 200 files from the git working directory inside the system prompt. Every file added or deleted changed those bytes, invalidating the cached prefix. That is issue #5224, opened 2025-12-08 and now closed.
The effect differs by where you run. On a hosted API you keep getting answers and quietly pay full input price instead of the cache-read rate, which is the exact failure mode in don’t break the prompt cache. On a local model there is no discount to lose, so the cost is time: an invalidated prefix has to be reprocessed before the model can answer, and that penalty grows with the size of your context.
Three more complaints show up repeatedly in the Hacker News thread (1,274 points, 618 comments). None are verified here, and all three are cheap to check on your own machine before you commit:
- Memory footprint. Commenters report the TUI holding around 1GB of RAM against roughly 80MB for Codex. Watch it in Activity Monitor during a long session.
- Outbound calls with a local-only config. One report describes prompts leaving for the cloud to generate a session title despite a local model being the only one configured. This is the
small_modelbehaviour above, and setting the key explicitly is the test. - Release cadence. One commenter describes the project as “constantly releasing at an extremely high cadence, where they don’t even spend the time to test or fix things.” Pin a version if you need a quiet week.
Take those as questions to answer, not findings. They come from users, not from measurement done for this article.
Where opencode lands on benchmarks
| Rank | Harness | Model | Accuracy |
|---|---|---|---|
| 4 | Codex CLI | GPT-5.5 | 82.2% |
| 10 | Droid | GPT-5.3-Codex | 77.3% |
| 50 | Claude Code | Claude Opus 4.6 | 58.0% |
| 64 | opencode | Claude Opus 4.5 | 51.7% |
Terminal-Bench 2.0 grades a harness and a model as one entry, and opencode’s submission runs an older Opus than Claude Code’s. Read the gap as “this pairing scored this,” not as a ranking of harnesses. It is still enough to rule out calling opencode the strongest agent available. A capable harness with a stale leaderboard entry is the honest reading.
The decision
Adopt opencode for the harness, not the free list. The 75+ providers, local model support, subscription auth, and MIT license will all still be there next quarter. A specific free model will not.
- Evaluating models cheaply, or learning agentic coding: yes, and the rotation is a feature. You get paid-tier models to test at no cost.
- Data cannot leave your machine: workable, but set
small_modelexplicitly and verify no outbound calls before trusting it. - Production work on a fixed budget: use it with your own provider key or a Copilot/ChatGPT subscription, and treat any free model as a bonus that will end.
- You need today’s best raw scores: the leaderboard points elsewhere.
Next
Run /models and write down what is free this week, then find the same models on Zen’s paid table and multiply by your typical session. That number, not the current free list, is your real cost of adopting opencode.
Then set small_model before your next session. It is one line, and it decides whether a local-only setup is actually local. If the cache behaviour above is new to you, don’t break the prompt cache is the checklist for spotting it in any harness, not just this one.