Skip to main content

CanIRunLLM

CanIRunLLM

Find out which open-source LLMs your machine can actually run — and which one you should pick — with an automatic hardware scan and a local dashboard.

PyPI Python License: MIT Tests

CanIRunLLM inspects your real CPU, RAM, and GPU/VRAM, checks that against a registry of real open-weight models (Qwen, Llama, Mistral, Gemma, Phi, DeepSeek, and more), and gives you a plain-language verdict — not just a raw "fits/doesn't fit" table. It runs entirely on your machine: no account, no cloud calls, no telemetry.

$ canirunllm scan

CanIRunLLM

Checking your computer...
  CPU detected
  RAM detected
  GPU detected
  VRAM detected

Analyzing local AI models...
  62 models analyzed

You can run 14 model(s) comfortably.
7 more can run with CPU/RAM offload (slower).

Dashboard:
  http://127.0.0.1:8765

Opening browser...

The browser dashboard shows a friendly "what can I run / what should I run" report — including estimated throughput and comparison charts — with the full technical breakdown (VRAM, RAM, KV cache, quantization, runtime, confidence) available behind a "Technical details" toggle for anyone who wants it. Clicking a model shows real, verified commands for running it yourself (llama.cpp, Ollama) — and for a growing set of models, a Download & Run button that does it for you, right there in the dashboard, with a live chat box to try it once it's up.

Table of contents

Why this exists

Open-weight models are closing the gap on proprietary ones fast, and running them locally means no API keys, no per-token bills, no vendor lock-in, and your data never leaving your machine. That future is arriving whether or not any single vendor cooperates.

But "just run it locally" quietly assumes you already know which model fits your hardware, which quantization to use, whether it needs multi-GPU or CPU/RAM offloading, and which runtime actually supports that combination — and gets it wrong just as quietly, with an OOM crash or a model that technically loads but is unusably slow.

CanIRunLLM exists to answer the question that actually matters before any of that: given the machine you actually have, what should you run? Not "is this hardware capable in theory," but "here's what you can run today, here's what you should pick, and here's why" — so local, open-weight models become something you can act on with confidence, not something you find out by trial and (expensive) error.

Install

Windows, no Python needed: download CanIRunLLM.exe from the latest release (or from canirunllm.vercel.app) and double-click it.

Any OS with Python already installed:

pip install canirunllm
canirunllm scan

Run canirunllm --help any time to see every command.

pip install failing? (click to expand)

canirunllm requires Python 3.10+. If pip install canirunllm reports it can't find a matching version, your plain pip/python commands are pointing at an older Python (commonly 3.9 on Windows, if more than one version is installed). Check what's available:

py -0

Then install with a specific newer version:

py -3.11 -m pip install canirunllm
py -3.11 -m canirunllm.cli scan

Or skip this entirely and use the .exe above — it needs no Python at all.

or from source:

git clone https://github.com/jashwanthsai678/CaniRunLLM.git
cd CaniRunLLM
pip install -e .

Quick start

canirunllm scan               # scan hardware, evaluate models, open the dashboard
canirunllm scan --no-browser  # same, but skip the dashboard (good for CI/headless)
canirunllm scan --technical   # also print the full technical breakdown in the terminal

canirunllm search qwen        # search the model registry
canirunllm check Qwen3-8B     # check one model or a whole family
canirunllm recommend          # ranked list of models for your hardware

canirunllm web                # launch the dashboard on its own
canirunllm web --port 9000    # on a custom port

What it actually checks

For every model + quantization pair, CanIRunLLM estimates:

  • Weight memory from parameter count and quantization (Q4_K_M, Q5_K_M, Q8_0, etc.)
  • KV cache size, which grows with context length — a model isn't just "fits" or "doesn't," it fits at a given context length
  • Runtime overhead and a safety margin, not just the raw weight size
  • Memory strategy: does it fit on a single GPU, does it need to be split across multiple GPUs, or does it need CPU/RAM offloading — each of these is a real, different scenario, not a single generic "offload" verdict
  • Runtime compatibility: is the declared runtime (llama.cpp, etc.) actually known to support that memory strategy
  • Estimated throughput (tokens/sec), clearly labeled as a modelled estimate, not a benchmark

The result is always a verdict plus a confidence level and a plain-English reason — never a bare "cannot run" with no explanation.

Download & run models directly

Beyond telling you what to run, CanIRunLLM can download a model and run it for you, then let you try it right there in the dashboard's chat box.

Click Download & Run on a model and pick a backend — whichever one you actually have installed shows first and clickable; anything missing shows disabled with a link to get it, instead of failing after the fact:

  • Ollama — if Ollama is installed and running, this pulls the model through Ollama itself and serves it from there. Only offered for models with a tag someone has actually checked against Ollama's library (see backends/ollama_tags.py) — a partial, honest list beats a guessed tag that turns out not to exist.
  • llama.cpp — downloads the model's GGUF file straight from Hugging Face and serves it with your own llama-server (install llama.cpp and put it on PATH, or point the LLAMA_SERVER_PATH environment variable at the binary). Covers every model in the registry, since the exact source repo for each one is already documented in SOURCES.md.

A couple of things worth knowing going in: gated Hugging Face repos (Llama, Gemma) need your own token in the HF_TOKEN environment variable — there's no way around that automatically, and this tool won't pretend otherwise. And if the app is forcefully killed rather than closed normally, a spawned llama-server process can be left running in the background; see ROADMAP.md for that and everything else that's built, tested, and explicitly left as a known gap rather than glossed over.

Architecture

CLI / Web Dashboard  (presentation only)
        │
Application Layer   (ScannerService, RecommendationEngine)
        │
   ┌────┴─────┬──────────────┬─────────────┐
   ▼          ▼              ▼             ▼
Hardware   Model Registry  Compatibility  Performance
Scanner    + Resolver      Engine         Prediction

The CLI and the local web dashboard are two presentation layers over the same Python core — nothing about compatibility is calculated twice, and the frontend never re-derives a verdict on its own.

The recommendation pipeline is entirely deterministic: hardware detection, memory math, and verdicts are plain Python, not an LLM call. This is a deliberate choice, not a missing feature — a tool whose job is helping you get your first local model can't require one to already be running, and a cloud API would contradict the "no API keys, no accounts" point of the whole project.

Current limitations (being upfront about them)

  • GPU detection currently only recognizes NVIDIA GPUs (by calling nvidia-smi directly). On AMD/Intel/Apple Silicon machines it safely falls back to CPU-only mode rather than crashing, but it won't report real GPU numbers yet.
  • The model registry is a curated set of well-known open-weight models, not an exhaustive mirror of every model on Hugging Face — see src/canirunllm/registry/SOURCES.md for exactly where every number in it came from.
  • Performance numbers are a coarse, clearly-labeled estimate based on parameter count and memory strategy — there is no real benchmarking yet, and the tool never presents an estimate as a measurement.
  • Download & Run has been built and tested end-to-end on Windows against real Ollama and llama.cpp installs, but not yet run on macOS or Linux — the underlying code is plain, portable Python, but that's a code-review judgment, not a demonstrated one yet. See ROADMAP.md for the full, current list of what's verified versus what's still open.

Contributing

Contributions are welcome, especially:

  • New model registry entries — add an entry to src/canirunllm/registry/models.json and document the exact source for every field (HF config.json URL, GGUF repo, file sizes) in SOURCES.md. Never fabricate a number — if something can't be verified, it doesn't go in.
  • AMD/Intel/Apple Silicon GPU detection — the hardware scanner (src/canirunllm/hardware/) currently only supports NVIDIA.
  • Bug reports — via GitHub Issues.

Before opening a PR, run the test suite (see below) and make sure it passes.

Testing

pip install -e .
pytest -v

License

MIT — see LICENSE.

Metadata

Release files for canirunllm 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for canirunllm 0.1.4
File Size Uploaded Provenance Actions
canirunllm-0.1.4.tar.gz 75.8 kB With provenance Details for canirunllm-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for canirunllm 0.1.4
File Interpreter ABI Platform Actions
canirunllm-0.1.4-py3-none-any.whl Python 3 none any Details for canirunllm-0.1.4-py3-none-any.whl

Total release size: 143.6 kB

Release files / canirunllm-0.1.4.tar.gz

Download URL canirunllm-0.1.4.tar.gz
Size 75.8 kB
Tags Source
SHA-256 checksum
How to use checksums
be92e6e107dd175888d1f8a85184e9feb203ed26541f51afa9223ebb6ae45f4c
BLAKE2b-256 checksum
How to use checksums
5cc9b064ed5a9044f9da0454f5c0c8ca6b55126e3e923cad2968311e33736b5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / canirunllm-0.1.4-py3-none-any.whl

Download URL canirunllm-0.1.4-py3-none-any.whl
Size 67.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
856bf7dcb727fbfe9e209c6b0907c2b323979b7e90c5f54448f6e53b519957fe
BLAKE2b-256 checksum
How to use checksums
39873cbe7022ee787c46fa12b63e7ae743ad3153277ae6336c546600bdd82faa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Security for canirunllm 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for canirunllm-0.1.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page