Ever since I signed up for the OpenCode Go plan, one thing has been nagging at me: how many requests do I actually get each month?

This thing kept changing all through August — model prices at each tier were being adjusted, new models kept getting added, and there were all sorts of promotions. Basically I had to refresh the official site every day just to see which models my quota covered and how many runs each one got. It was exhausting.

And the kicker: the monthly quota data on the official site is scattered across several different tables:

  • The price table (unit price per 1M tokens) is one table
  • The monthly usage quota ($15/$30/$60 tiers) is mixed into the price table
  • The token breakdown per request (input/cache/output) is another table
  • The official “requests per month” per model needs yet another separate table

And that “5-hour quota” chart everyone loves to look at doesn’t list all the models, so you can only get a rough sense of things.

Here’s what it looks like:

The idea

So I handed the problem to an Agent.

Once ds got the task, it reasoned: if the official “requests per month” table is just back-calculated from unit price × the token breakdown per request, then I can pull the latest price table myself, run the same formula, and get complete usage numbers for every model. Then chart it and scan the whole thing at a glance.

The formula is simple:

每请求成本 = (输入token×输入价 + 缓存token×缓存价 + 输出token×输出价) / 1,000,000
每月请求数 = 每月使用额度 ÷ 每请求成本

This approach matches the logic the official team uses to generate its “request count estimate table”, and in testing most models land within <1% of the official values — which effectively validates the formula.

Implementation

The whole tool is a zero-dependency single-file HTML — open the page and it pulls the data automatically:

  • The data source is the raw mdx on the dev branch of the GitHub repo anomalyco/opencode (synced from the same source as the opencode.ai docs), with a jsdelivr CDN source as backup. Both send CORS headers, so the browser can fetch cross-origin directly — no backend needed.
  • It parses three chunks: the price + quota table, the request pattern table (token breakdown per request), and the official request count table (used as a reference).
  • Model names are normalized with longest-prefix matching, to handle the official site’s combined notations like GLM-5.3/5.2/5.1 and Kimi K2.7 Code.
  • Then it draws a horizontal bar chart (log scale — the higher the usage, the longer the bar). Hovering over any bar shows the details: unit price, monthly quota, cost per request, token pattern, and the official reference value.
  • If the fetch fails, it automatically falls back to the last successful localStorage cache, and there’s a “Refresh now” button at the top.

Bars with a discrepancy get a ▲ marker. For multi-tier models (like DeepSeek V4 Flash’s Peak/Off-Peak), each tier becomes its own bar, while the official site gives only one aggregate value — which usually doesn’t line up with the higher tier. That’s by design, not a miscalculation.

The result

Now whenever I want to check my plan, opening this one page is enough — no more digging back and forth through several tables on the official site.

Live preview: https://mousebomb.org/opencode-go-limits/

If you use OpenCode Go too, this page should save you some of that daily table-hunting.