I switched because AI got too expensive. OpenCode Go made it make sense.

Like a lot of developers, I watched my AI subscriptions drift upward while the value stayed flat. OpenCode Go flipped the model: $10/month, thirteen open coding models, generous quota windows. But it does not tell you which model fits which task. That is what ZenPick is for.

GitHub Built by Michael Open source · Free to use

What ZenPick does

Three things, on one page. A sortable table of every Go model with live benchmark scores. A quota calculator that turns a token estimate into a number-of-requests per window. A detail drawer that names the closed-source model each Go model replaces, and why.

Everything runs on a stale-while-revalidate cache, so the page is fast on revisit and never asks the upstream APIs for the same data twice within six hours.

fig.02 — system schematic data flow
input
modelgrep.com API
benchmarks · pricing · speed
llm-stats.com API
rankings · scores · pricing
OpenCode Go
models · endpoints
engine
FETCH
HTTP · auth
CACHE
6h TTL · SWR
INFER
tag · score · rank
output
Model Table
sortable · filterable
Quota Calculator
token → request
Model Drawer
detail · copy · compare
scale 324 models upstream
latency cache hit < 50ms
refresh 6h · stale-while-revalidate

The numbers

10 /mo
subscription

First month $5.

13 +
models tracked

Across 6 providers.

6 h
cache TTL

Stale-while-revalidate.

324
upstream models

Cross-referenced via modelgrep + LLM Stats.

50%
cheaper

Same features at half the cost of what it replaced.

Live price-vs-performance from upstream data. Interact with it — filter by task

Methodology

Every model gets a 0–100 fit score for five scenarios — Brainstorming, Coding, Agentic, Budget, and Frontend. Scores are normalized across the current model population, so the ordering is always meaningful and always non-empty. The table sorts by the active scenario; if no scenario is active, it sorts by raw coding benchmark.

Tags, migration hints, and thermal burn rates are inferred. Nothing on the page is hand-curated. If the upstream data changes, the page changes.

Data & attribution

Benchmark scores, pricing, and speed data are aggregated by modelgrep.com (OpenRouter pricing + Artificial Analysis benchmarks) and llm-stats.com (benchmark scores, rankings, and pricing), and used with attribution. The model list, endpoint types, and quota windows come from the OpenCode Go documentation .

Everything ZenPick computes on top — scenario fit scores, burn rate tiers, migration hints — is derived from those sources, in the schematic above. The data and the attribution are kept close on purpose.

data_sources.json 3 sources · required attribution
ProviderLicenseUse in ZenPick
modelgrep.com
attribution required
Free public API (no key required)Benchmark scores, OpenRouter pricing, speed/latency, model metadata
llm-stats.com
attribution required
Per LLM Stats API termsBenchmark scores, rankings, pricing, model metadata
opencode.ai/docs/go Per OpenCode Go docsModel list, endpoint types, quota windows

Thermal key

Every model in ZenPick carries a thermal burn band. It is derived from OpenCode's published usage-limit request counts — requests per $12 / 5h window, scraped from the Go docs — a direct measure of how fast the model burns through your quota (not an inference from price).

excellent
> 11,000
Workhorse models. Use these for volume.
good
3,500 – 11,000
Economical for steady use.
moderate
1,000 – 3,500
Balanced daily drivers.
high
500 – 1,000
Premium models for focused, short sessions.
extreme
< 500
Burns fastest. A handful of requests empties the $12 window.
Source function: computeBurnScore() in src/lib/server/burn.ts

Your $12 quota window is ticking.

Every model burns quota at a different rate — pick the right one and the window lasts; pick wrong and it empties in minutes.

Free, no account Live data from 3 upstream sources

Find my model before my next session