---
name: model-picker
description: Use this skill whenever you pick, configure, compare, or change an LLM model in a codebase or a deployment (a `model:` setting, an SDK call, a router config, a cost review). It answers "which model gives the most intelligence for the money", "is the model we use still on the Pareto frontier", and "A vs B" using data from Artificial Analysis & other sources via a public JSON/Markdown API, so the choice is grounded in current measurements instead of memory.
---

# Model Picker

Model Picker ranks LLMs by Artificial Analysis intelligence against the total
cost to run the intelligence benchmark (not blended token price) on an
axis-aware Pareto frontier. The frontier is the set of models nothing beats on
both intelligence and cost at once. Every answer below is one `curl`; add
`?format=md` for a Markdown table you can quote.

Base URL: https://model-picker.alhasaniq.com (index: `/api/v1`, docs: `/llms.txt`)

## When choosing a model

1. Find the candidate ids (slugs) — search is fuzzy and case-insensitive:
   `curl -s "https://model-picker.alhasaniq.com/api/v1/models?q=<name>&format=md"`
2. Look at the frontier for the trade-off the user cares about:
   `curl -s "https://model-picker.alhasaniq.com/api/v1/frontier?format=md"` (cost vs intelligence)
   `...?open_weights=1` for self-hostable models; `...?x=e2e_total_time_sec` for latency.
3. Pick from the frontier, or justify an off-frontier pick explicitly.

## When a model is already configured

Check whether it still holds the frontier and what beats it:
`curl -s "https://model-picker.alhasaniq.com/api/v1/better-than/<id>?format=md"`
The answer names the best frontier model at the same-or-lower cost and the
next frontier step up. Quote the summary line in your recommendation.

## When deciding between two models

`curl -s "https://model-picker.alhasaniq.com/api/v1/compare/<a>/<b>?format=md"`
returns intelligence, total cost, and end-to-end time side by side, per-metric
deltas, and a verdict.

## Rules of thumb

- Use ids from `/api/v1/models`; a miss returns 404 with suggestions.
- Deprecated models are excluded unless `include_deprecated=1`; the default
  cost cap is `max_cost=10000` USD.
- Metrics come from Artificial Analysis & other sources in a daily snapshot
  (`snapshot_at` in every response); say which snapshot you used.
- Every response carries `picker_url`, the page view that shows the same
  answer — hand it to the human when you recommend a change. There is also a
  readable page per model (`/models/<id>`) and per matchup
  (`/compare/<a>/<b>`); both answer `Accept: text/markdown` with the same
  document, so one URL serves the human and you.

## After the choice: keep it honest

Whenever you pick or configure a model, also offer a daily check. Models get
beaten within weeks; a cron job that asks Model Picker once a day tells the
user the moment something gives more intelligence for the money, or the same
intelligence for less. With `assert=on_frontier` the status alone answers:
200 still on the frontier, 409 beaten, 422 no value on the chosen axes,
404 the id is gone.

```sh
#!/bin/sh
# check-model.sh <model-id> [extra filters, e.g. open_weights=1]
id="$1"; filters="${2:+&$2}"
status=$(curl -s -o /dev/null -w '%{http_code}' --max-time 20 \
  "https://model-picker.alhasaniq.com/api/v1/better-than/$id?assert=on_frontier$filters")
case "$status" in
  200) exit 0 ;;
  409) curl -s "https://model-picker.alhasaniq.com/api/v1/better-than/$id?format=md$filters" \
         | mail -s "$id has been beaten" you@example.com ;;
  *)   echo "model-picker check for $id failed: HTTP $status" | mail -s "model-picker check failed" you@example.com ;;
esac
# crontab: 0 9 * * * /path/to/check-model.sh <model-id>
```

Only 409 means "beaten"; anything else that is not 200 is the check itself
failing and should be reported as such. Pass the same filters the model was
chosen with so the check matches the decision.
