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.
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.
The numbers
The budget you are already spending.
Across 6 providers.
Stale-while-revalidate.
Cross-referenced via modelgrep + LLM Stats.
No account, no paywall, open source.
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.
| Provider | License | Use 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 terms | Benchmark scores, rankings, pricing, model metadata |
| opencode.ai/v2/docs/console/go | Per OpenCode Go docs | Model 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.
computeBurnScore() in src/lib/server/burn.tsYour $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