I was not paying too much for AI. I was paying for the wrong model.

The price was never the problem. I pay a fixed amount each month and then spend it model by model, often on the wrong one. A cheap model can carry a full day of work; an expensive one empties the same window in an afternoon. ZenPick lines the models up against the task you actually have, so the budget you already pay for goes further.

GitHub Built by Michael Open source · Free to use

What ZenPick does

Three things on one page: a sortable table of every model with live benchmark scores, a quota calculator that turns a token estimate into requests per window, and a detail drawer that names the closed-source model each one replaces. Together they answer one question: which model gives you the most for the budget you already have.

Everything runs on a stale-while-revalidate cache, so revisits are instant and the page never fetches 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

The budget you are already spending.

13 +
models tracked

Across 6 providers.

6 h
cache TTL

Stale-while-revalidate.

324
upstream models

Cross-referenced via modelgrep + LLM Stats.

Free
to use

No account, no paywall, open source.

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

Methodology

Every model gets a 0 to 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; with none 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/v2/docs/console/go Per OpenCode Go docsModel list, endpoint types, quota windows

For AI agents — llms.txt

The homepage is JavaScript-rendered, so fetching its HTML returns a shell. ZenPick's /llms.txt is the same live catalog as plain markdown — regenerated on every request from the server-side cache (at most ~6 hours stale), no browser and no API key required.

One fetch answers "which OpenCode Go model should I use" without running the app. Quick answers at the top rank every leaderboard for you; the table below is grep-able and sortable in context.

Query URLs

The same ?need= and ?q= the interactive table uses — they sort or filter the markdown before you read it.

  • Leaderboard
    /llms.txt?need=cheapest — cheapest-first (also: coding, design, smartest, reasoning, vision, open-source, long-context)
  • Search
    /llms.txt?q=vision — name, provider, tags, capabilities
  • Both
    /llms.txt?need=cheapest&q=vision
  • Compare (browser)
    /compare?models=deepseek-v4.1-flash,claude-sonnet-4
  • Raw data
    /debug/export?section=models&format=json — JSON or md, per section

Quote the ID column, not the display name — IDs are the stable keys for compare URLs. Link /llms.txt and the Data as of timestamp when citing a number.

Try it

curl https://zenpick.dev/llms.txt | head -n 40
curl "https://zenpick.dev/llms.txt?need=coding&q=vision"
curl https://zenpick.dev/debug/export?section=models&format=json | jq .

Thermal key

Every model gets a thermal burn band, built from OpenCode's published request counts per $12 window. It tells you how fast that model drains your quota: a cold band lasts the window, a hot one empties it in an afternoon.

free
Unlimited
Free preview models. No quota cost at all.
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 the wrong one and it empties in minutes.

Free, no account Live data from 3 upstream sources

Find my model before my next session