One line: which open-source LLM works best on your local machine today.
Project description
llm-fit-check
One line: which open-source LLM works best on your local machine today.
pip install llm-fit-check
llm-fit-check --task code
# > For code, run Qwen2.5-Coder 32B (`ollama run qwen2.5-coder:32b`) — ~21.0GB, score 90/100 on the 2026-01-15 leaderboard snapshot.
What it does
- Detects your hardware (RAM, VRAM, Apple Silicon unified memory, NVIDIA via
pynvml/nvidia-smi). - Pulls a daily snapshot of leaderboard scores (Open LLM Leaderboard v2, LiveBench, Aider, EvalPlus) — falls back to a bundled snapshot offline.
- Filters the model catalog to those that fit your usable memory (Q4_K_M GGUF footprint + headroom).
- Returns the highest-scoring model for your task in one line.
Usage
llm-fit-check # general-purpose pick
llm-fit-check --task reasoning --why # show hardware + runners-up + sources
llm-fit-check --ask # interactive: asks what you want to do
llm-fit-check list --task code # full ranked catalog
llm-fit-check hardware # just print detected hardware
llm-fit-check --refresh # force-refresh leaderboard cache
Tasks: code, chat, reasoning, general.
As a library
from llm_fit_check import recommend
rec = recommend(task="code")
print(rec.one_liner())
print(rec.pick.ollama) # e.g. "qwen2.5-coder:32b"
How the snapshot is refreshed
A GitHub Action (.github/workflows/refresh.yml) runs weekly (Mon 06:00 UTC)
and regenerates src/llm_fit_check/data/snapshot.json by running
scripts/refresh_snapshot.py. The package fetches the raw JSON from GitHub on
first use and caches it locally for 7 days. --offline uses the bundled
snapshot only.
Sources today:
- HuggingFace Open LLM Leaderboard v2 (paginated rows API, with retries and early-stop once all known aliases are matched)
- LiveBench
model_judgmentdataset (best-effort; falls back gracefully when the rows endpoint 500s — a parquet-based fetch is the next step)
Adding a new model: edit scripts/aliases.yaml (HF repo id → catalog id)
and scripts/footprints.yaml (display name, params, Q4 footprint, ollama tag),
then trigger the workflow manually. Run locally with:
pip install httpx pyyaml
python scripts/refresh_snapshot.py # writes snapshot.json
python scripts/refresh_snapshot.py --dry-run # prints to stdout instead
If every source fails, the existing snapshot is preserved (no partial writes).
Roadmap
- Live scrapers for LMArena, LiveBench, Aider (currently a curated snapshot)
- AMD ROCm + Intel Arc detection
- Quantization-aware footprints (Q8, Q5, Q3)
- Detect installed runtimes (Ollama, llama.cpp, LM Studio) and recommend models you already have
- Per-task benchmarks beyond aggregate scores
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llm_fit_check-0.1.1.tar.gz.
File metadata
- Download URL: llm_fit_check-0.1.1.tar.gz
- Upload date:
- Size: 13.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d1a83faa241c446ed658f604e50d45ae978a570f29603e9d5be4cb4fe641b08
|
|
| MD5 |
63e30a0a46dab0cb44bb1cfdf0754d70
|
|
| BLAKE2b-256 |
1e4c32d507577611561454bcc649fc28acdf7fa80697180a4706b71b0cedebea
|
File details
Details for the file llm_fit_check-0.1.1-py3-none-any.whl.
File metadata
- Download URL: llm_fit_check-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a6834858a0d821b0c2a1bb0de16a9ce81bf6cc03f5c70f63a6dcd66cc37eb61
|
|
| MD5 |
aaaa4e35d23343b8443297efc7b797ca
|
|
| BLAKE2b-256 |
2215482de6da129ce59a7a6513d50d074e5ab9b2b8385c210178ff6bae78c64a
|