Automation
Daily cron setup
Fetch the ordered shortlist once a day and use the first model in models[] as the active OpenRouter model.
- API URL
-
- Daily read
-
models[0].idfirst model ID in the ordered list
Prompt
Give this to your coding agent
Recommended setup
Copy the setup
- Base URL
-
- If available
-
- If unavailable
-
Backup router. OpenRouter chooses another compatible free model if the main pick is unavailable.
- API key
- Get here
- Last updated
Why this model
How we score modelsSetup snippets
OpenAI-compatible examples
Daily ranking
Top free models
Ranking
How the ranking is decided
- Free text models only Start with OpenRouter models that are free to use, return text, are not expired, and have at least an 8k context window.
- Metadata base score Score the eligible pool for tool calling, structured outputs, reasoning support, context length, output size, recency, and free-label confidence.
- Health and latency check When the backend has an OpenRouter admin key, it sends tiny throttled health probes to the top candidates and adds reachability plus latency points.
- Lite agent eval The likely winners get small file-writing, shell-command, and symbolic decoding checks. The eval stage stops once no unevaluated candidate can still overtake the leader.
- Cache and confidence Recent evals can be reused with decay. Account rate limits pause measurement; model-specific failures add a small instability penalty. Confidence rises when the winner is mathematically settled.
-
Keep a backup route
If the top pick stops working,
openrouter/freestays on the page as the fallback router so you can keep calling OpenRouter directly.
Final score = metadataScore + healthScore + latencyScore + liteEvalScore - instabilityPenalty.
The recommendation is a practical heuristic for general developer usage, not a benchmark claim.
Privacy
Your app talks to OpenRouter directly
shir-man.com does not proxy your prompts, collect your API key, or handle your completions.
Create your own OpenRouter API key, store it as OPENROUTER_API_KEY, and use the base URL shown above.
If the recommended model stops working, switch the model ID to openrouter/free. OpenRouter will route the request to any compatible free model it has available.