Vibeleaderboard
Index / app
Visit github.com
Category
Developer Tools
Rank
Type
APP
Builder
andyyyy64
Latest release
v0.5.16
Date

About

Benchmarks and ranks which local LLM runs best on your specific hardware.

What it does

WhichLLM is a command-line adviser for choosing and running local language models. It detects system memory and processors, fetches current Hugging Face model data, combines benchmark evidence with memory and speed estimates, then presents suitable options. It can also simulate hardware purchases, compare upgrades, plan hardware for a named model, start a chat, and generate Python snippets.

Why it's ranked here

The tool addresses more than basic memory fit. Its recommendations account for benchmark quality, evidence confidence, model generation, quantization, context memory, runtime overhead, and estimated throughput. Hardware simulation, planning commands, and machine-readable output make those recommendations useful beyond a single terminal check. The estimates remain planning aids, however, rather than measurements from the user’s machine.

What's good

Memory estimates include weights, key-value cache, activations, framework overhead, context length, and mixture-of-experts behavior. Recommendations distinguish full GPU loading, partial offload, and CPU execution. Benchmark evidence carries source and confidence information instead of being treated uniformly. Users can reserve VRAM and RAM headroom, filter slow candidates, select task profiles, and export JSON or Markdown.

Tradeoffs

Default recommendations are intentionally ambitious, so near-limit VRAM fits and partial RAM offload may prove less comfortable than expected. Speed values are estimates with confidence ranges, not live performance tests. Results normally depend on Hugging Face network data, though curated fallbacks cover offline or rate-limited cases. Ollama integration still requires users to map Hugging Face identifiers to local model names.

How to use it well

Use it when selecting a local model, checking whether a quantized variant fits, or comparing GPUs before purchase. Start with full-GPU filtering, a usable-speed threshold, and reserved VRAM when reliability matters more than ambition. Feed JSON into scripts for repeatable selection. Do not treat its throughput projections as a substitute for benchmarking the chosen model under your actual prompts and runtime.

Technical notes+

pyproject.toml defines a Hatchling-built Python package, requires Python 3.11 or newer, and exposes whichllm.cli:app as the console entry point. src/whichllm/cli.py implements the Typer interface, validates mutually exclusive and malformed options, applies hardware overrides and memory budgets, and supports structured output modes. src/whichllm/models/hf.py uses asynchronous HTTP requests, multiple discovery sorts, explicit frontier model lookups, and configurable Hugging Face endpoints. src/whichllm/models/http.py adds bounded retries with exponential backoff for transient failures. src/whichllm/engine/vram.py estimates weights, KV cache, activations, and framework overhead, including sliding-window attention and MoE adjustments. src/whichllm/models/gguf.py parses quantization labels and combines split GGUF sizes. src/whichllm/data/gpu.py contains curated bandwidth, compute capability, shared-memory, and legacy Vulkan-only GPU data.

Observed

License
MIT
Primary language
Python
Python requirement
Python 3.11 or newer
Packaging
PyPI package built with Hatchling; installable through uv, pip, or Homebrew
Interface
Command-line application with terminal tables, JSON, and Markdown output
Platform support
Detects NVIDIA, AMD, Intel, Apple Silicon, and CPU-only systems
Runtime formats
Supports GGUF through llama-cpp-python, AWQ and GPTQ through Transformers integrations, and FP16 or BF16 through Transformers

Read from README.md, pyproject.toml, src/whichllm/cli.py, src/whichllm/utils.py, src/whichllm/__init__.py, src/whichllm/__main__.py, src/whichllm/constants.py, src/whichllm/data/gpu.py, src/whichllm/models/hf.py, src/whichllm/engine/vram.py, src/whichllm/models/gguf.py, src/whichllm/models/http.py, src/whichllm/output/plan.py, src/whichllm/data/lineage.py, src/whichllm/engine/types.py.

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.