Quick answer
OpenCode Go measures usage as a dollar amount and applies three windows: 5-hour, weekly, and monthly, capping 20%, 50%, and 100% of a model's monthly limit. Hitting the 5-hour cap frees capacity within hours; the monthly cap waits for your billing period. The Go page in the OpenCode console shows the current figures and reset.
The window you hit decides the wait
People ask when OpenCode resets as if there were one clock. There are three, and they are nested. A model's monthly limit is the outer budget. The weekly and 5-hour figures are fractions of that same budget, so the limits scale with whichever model you are using rather than sitting at one global number.
That design explains a confusing symptom. You can be blocked on an expensive model while a cheaper one still works, because each model carries its own monthly limit and therefore its own share for the shorter windows. Switching models is not a workaround for the monthly cap on the expensive model; it is a different budget.
| Window | Share of the model's monthly limit | What usually triggers it | What to do |
|---|---|---|---|
| 5-hour | About 20% | A long agent run or several parallel sessions | Wait for capacity to return, or switch models |
| Weekly | About 50% | Four or five heavy days in a row | Move low-value work to another provider until the week turns |
| Monthly | 100% | Sustained daily use across the billing period | Wait for the period, enable Extra Usage, or use free models |
These percentages come from the current Go documentation and can change. Treat the table as a way to reason about the system, then confirm the live numbers on your own account page before you plan a week around them.
Read the reset instead of counting hours
The console is the source of truth. Sign in, open the Go page, and read the usage section for the model you are using. It shows what has been consumed against the allowance and when the current window turns over. If your workspace has Extra Usage enabled, the same page explains what happens after the limit: requests fall back to pay-as-you-go credit instead of failing.
- Open the console Go page and note which model is capped, not just the account total.
- Check whether the block is a 5-hour, weekly, or monthly message; the wording names the window.
- If Extra Usage is available and acceptable, enable it before the next long run rather than after a failure.
- If not, switch to a model with headroom or move the task to free models until the window turns.
Local data helps you predict the block rather than react to it. The database records a request count per message, so a query grouped by hour shows the pace that burns a 5-hour window. The Go usage guide explains how to line those local rows up with the console figures, and the dashboard guide covers the view you get from a tracker.
Free models and provider keys reset differently
Not every OpenCode limit belongs to Go. A free model has whatever ceiling its provider sets, and that ceiling can change without notice. A personal API key draws on the provider's own quota, which resets on the provider's schedule, not OpenCode's. A local model has no token bill at all, only the cost of running it.
So the honest answer to when OpenCode resets is: the client does not hold the clock, whoever serves the model does. Check the console for Go, the provider dashboard for a direct key, and the model list for free-tier status. UsageAtlas reads the local records and shows reset countdowns for the tools that expose them, plus an alert once per cycle when a window is nearly spent. The free models guide covers the cases where no published reset exists.
Questions, answered
Does the OpenCode 5-hour limit reset all at once?
No. It behaves like a rolling window, so capacity returns as older usage ages out rather than in one step at the five-hour mark. The console shows the current state.
Can I keep working after the monthly Go limit?
If Extra Usage is enabled on the Go page, requests continue against your pay-as-you-go balance. Otherwise you can switch to a free model or connect a different provider with your own key.
Do all OpenCode models share one reset time?
No. Each model has its own monthly limit, so its 5-hour and weekly shares turn over independently. A block on one model says nothing about the others.