mrkeyoor.com_
Fri 18 Sept 19:11 UTC
AI Toolsevaluationupdated 26 Aug 2026

whichllm review

WhichLLM is a Python command-line tool that detects a computer's CPU, GPU, memory, and disk, then ranks local language models that should fit. It combines model metadata, published evaluation data, memory estimates, and estimated generation speed so buyers can compare models or simulate a GPU before downloading weights.

+39stars / 7d
Verdict

Our WhichLLM checkout could not install because its exact uv 0.11.33 requirement rejected the sandbox's uv 0.12.5 after 37 seconds. The tool is worth a second attempt for local-model shoppers who want ranked candidates and GPU simulations, but only after pinning that developer tool and accepting that speed is estimated. If you already know the model, go straight to Ollama or llama.cpp and measure it on the target machine.

We ran it

Lab card: what happened when we ran whichllmScreenshot of whichllm (github.com/Andyyyy64/whichllm)
Install✗ · 37s
Build
Repo132 files~18,888 lines of source · 1.8 MB · 3 CI workflows · tests dir

Answers from our run

Does whichllm build from source?

The dependency install failed, and the project has no separate build step. We cloned commit ea32ed2 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use whichllm?

Buyers who need measured performance on their exact machine: the README says its speed range is a planning estimate, not a live benchmark.

What are the alternatives to whichllm?

Ollama, llama.cpp, LM Studio. Our WhichLLM checkout could not install because its exact uv 0.

Setup2/5One-command pitch, but exact uv pin blocked our clean install
Docs5/5Scoring, evidence, cache, hardware, and command behavior are explained
Community4/56,486 stars with active issues and pull requests in August 2026
Maturity3/5v0.5.16 is active, while model coverage and estimates keep changing

Discussed on

  1. hnShow HN: Find the best local LLM for your hardware, ranked by benchmarks283 points
  2. hnShow HN: Whichllm – Find and run the best local LLM for your hardware3 points

Who it’s for

Local-model users choosing among GGUF, AWQ, GPTQ, and full-precision releases for hardware they already own.
PC buyers who want to compare candidate GPUs before spending money.
Developers who need model recommendations as JSON for a script or internal inventory tool.
People willing to treat speed and memory output as planning estimates and verify the final choice in their actual runtime.

Who it’s NOT for

Buyers who need measured performance on their exact machine: the README says its speed range is a planning estimate, not a live benchmark.
Users who want direct Ollama model names with no translation: the README says Hugging Face IDs do not always match Ollama names and requires a mapping step.
Anyone expecting complete coverage for every new model family: open issue 24 says some newer Qwen models lack enough metadata or benchmark evidence to rank well.
Operators who cannot pin the project's required uv release: our install stopped because WhichLLM required uv 0.11.33 while the sandbox had 0.12.5.
Teams that need a local model manager: WhichLLM can launch supported formats, but its main job is recommendation, and an open LM Studio integration does not yet launch an existing local artifact.

Setup reality

Our sandbox install failed after 37 seconds, before a build or test step could run. WhichLLM required uv exactly at version 0.11.33, while the fresh image supplied uv 0.12.5. The error told us to change uv to 0.11.33.

The README presents uvx whichllm@latest as a one-command trial and also supports a uv tool install, pip, or Homebrew. Live recommendations fetch Hugging Face and benchmark data, then cache model data for 6 hours and benchmark data for 24 hours; frozen fallback data covers offline or rate-limited use.

Python 3.11 or newer is required. Running a recommended model is a separate, much larger step: WhichLLM creates an isolated environment, installs a backend, and downloads model weights. Hardware detection and estimates vary across NVIDIA, AMD, Intel, Apple Silicon, and CPU-only paths.

WhichLLM ranks models that fit instead of stopping at a memory check

WhichLLM answers a more useful question than whether a model can load: among the candidates that appear runnable, which one has the strongest evidence for the requested task? The command detects hardware, fetches Hugging Face models, merges several evaluation sources, estimates memory and speed, then discounts weak evidence.

The interface is practical for shopping. It can simulate a named GPU, compare upgrade candidates, or reverse the problem and suggest hardware for a model. JSON and Markdown output make the recommendation usable outside the terminal. Python 3.11 or newer is required, while NVIDIA detection ships through nvidia-ml-py; AMD, Intel, Apple Silicon, and CPU paths have their own detection logic.

A recommendation score combines evidence, fit, and estimated speed

The ranking starts with evaluation data from sources named in the README, including LiveBench, Artificial Analysis, Aider, Chatbot Arena, and the Open LLM Leaderboard. Evidence is marked as direct, a model variant, inherited from a base, interpolated within a family, or self-reported. Lower-confidence paths receive discounts. Older frozen leaderboards are demoted along model lineages so stale data has less power over a current recommendation.

Memory is modeled as weights, key-value cache, activations, and framework overhead, which the README approximates at about 500 MB. Speed comes from bandwidth, quantization, backend, fit type, and active parameters for mixture-of-experts models. The result is explicitly an estimate. WhichLLM exposes confidence and a range, and says that the displayed range is for planning rather than a benchmark collected from the machine in front of it.

What happened when we ran it

Our sandbox did not get past installation. At commit ea32ed2, the install exited with code 1 after 37 seconds because the repository required uv exactly at version 0.11.33. The image had uv 0.12.5. The final message instructed us to run uv self update 0.11.33, even though that requested release is numerically older than the one in the container.

Because installation failed, we did not reach a build, tests, dependency count, disk-use result, or vulnerability audit. The repository itself had 132 files, about 18,888 lines of source, and a 1.8 MB checkout. Our scan found 3 CI workflow files and a tests directory, with no Dockerfile. Those structural signals do not substitute for a successful run in the stated Debian environment.

This is an avoidable first-contact problem. Exact development-tool pins can make CI repeatable, but they also reject a newer uv before Python dependencies are resolved. Pull request 168 proposes relaxing the requirement, yet it was open when researched and cannot be treated as shipped behavior. A new user following the uvx whichllm@latest path may see different packaging behavior than a contributor installing this checkout.

Live data makes recommendations fresher and less reproducible

WhichLLM fetches popular text-generation and GGUF models from Hugging Face, with a separate vision query when that profile is selected. Its current-tier evaluations are merged when reachable. Model results are cached for 6 hours and benchmark data for 24 hours. Offline or rate-limited use falls back to curated frozen data, so the same command can produce a different list depending on network access, cache age, and upstream availability.

The output prints the benchmark snapshot date and labels evidence quality. Users can force a refresh or require direct evidence. A recommendation still inherits assumptions in family metadata and the hardware model, so save its JSON and date when using it for a purchase.

New hardware and model families expose the weak spots

Open issue 24 says some newer Qwen releases are in the cache but rank poorly because benchmark evidence or metadata is missing. It also describes sparse math recommendations and older coder models resurfacing quickly. Issue 36 tracks more accurate modeling for Strix Halo and Ryzen AI MAX systems, including PCI identification, bandwidth, allocation limits, and reserved memory. Both reports concern the inputs that decide fit and rank, not cosmetic output.

--gpu-only removes partial offload and CPU candidates, while --vram-headroom reserves memory for runtime overhead. The README suggests 1 GB initially and 1.5 GB when another application still judges a model too large. These controls narrow risk; they do not turn estimates into measurements.

Model launching adds downloads and backend-specific behavior

whichllm run can select a GGUF variant, create an isolated uv environment, install dependencies, download weights, and start chat. GGUF uses llama-cpp-python, while AWQ, GPTQ, FP16, and BF16 paths use Transformers and related packages. Apple Silicon and CPU recommendations are restricted to GGUF for stability, while Linux with NVIDIA hardware permits more formats. This convenience can turn a small selector command into a large download and runtime setup.

Release v0.5.16 addressed a serious trust boundary in that path: synthetic GGUF recommendations are now kept to direct quantizations of the selected checkpoint, rejecting fine-tunes, merges, and artifacts with conflicting provenance. The release also escaped model IDs and filenames in generated scripts. Those fixes are a reason to avoid stale installs, especially when recommendation output can lead directly to downloading executable model tooling and large third-party artifacts.

August 2026 maintenance is active, but the exact pin blocks contributors

GitHub recorded 6,486 stars and 23 combined open issues and pull requests when fetched. The repository's last push and v0.5.16 release both landed on August 14, 2026. Issue and pull request activity continued later in August around newer models, hardware detection, LM Studio files, and the uv restriction. This is young software with active correction work rather than a settled hardware database.

WhichLLM is most useful before a download or hardware purchase, as a shortlist generator with visible uncertainty. Our 37-second install failure means the checked-out development path needs repair or an exact uv downgrade before we can recommend it without reservation. Once it runs, take the top few candidates to the runtime you intend to use and measure memory, speed, and output quality there.

Alternatives

ProjectWhat it isPick it when
Ollama gh↗A local model runner with a simple model catalog and API.pick this instead when you already know which model you want and need an easy way to download and serve it.
llama.cpp gh↗A widely used local inference engine for GGUF models across CPUs and GPUs.pick this instead when runtime control and direct performance testing matter more than a ranked recommendation.
LM StudioA desktop application for finding, downloading, and running local models.pick this instead when you want a graphical model manager and conservative fit guidance.

Sources

  1. WhichLLM README
  2. WhichLLM repository facts
  3. WhichLLM v0.5.16
  4. Newer model coverage issue
  5. Strix Halo modeling issue

More ai tools reviews

router · PaddleOCR · GLiNER2 · bazi-skill · transformers.js · OpenBitFun · the whole board →