Skip to main content

A fast, modern CLI that shows which local LLMs fit on your machine

Project description

LLM Scan

A fast CLI that scans your hardware and tells you which local LLMs will actually run on your machine.

CI PyPI Python 3.10+ License: MIT

Features

  • Auto-detects your hardware -OS, CPU, RAM, and GPU memory in seconds
  • Multi-vendor GPU support -NVIDIA (nvidia-smi), AMD ROCm (rocm-smi), Intel Arc (xpu-smi/clinfo), Apple Silicon (unified memory), Windows (Get-CimInstance/wmic)
  • Smart fitness scoring -Rates every model as great, ok, tight, or no based on your VRAM, RAM, and multi-GPU setup
  • 45+ bundled models -Llama, Qwen, Mistral, Gemma, Phi, DeepSeek, CodeLlama, StarCoder, and more
  • Hugging Face search -Find GGUF models on Hugging Face and add them to your local catalog
  • Auto-computed VRAM -Adds models with formula-derived memory requirements from parameter count and quantization
  • Multi-GPU aware -Accounts for tensor parallelism across multiple GPUs
  • CPU-only inference -Recognizes when you have enough RAM to run models without a GPU
  • Beautiful terminal UI -Rich tables, color-coded ratings, ASCII banner
  • Custom catalogs -Bring your own model list as a JSON file
  • JSON output -Pipe results into scripts or dashboards

Install

# With pip
pip install llmscan

# With pipx (isolated install)
pipx install llmscan

# With uv
uv pip install llmscan

# From source
git clone https://github.com/adityaarakeri/llmscan.git
cd llmscan
pip install -e .

The installed command remains llmscan.

Quick Start

# Show banner + hardware summary + compatible models
llmscan

# Check version
llmscan --version

Usage

scan -Inspect your hardware

llmscan scan              # Rich formatted hardware details
llmscan scan --json       # Machine-readable JSON output

list -List compatible models

llmscan list                          # Show models rated "tight" and above
llmscan list --min-rating great       # Only show "great" fits
llmscan list --min-rating no          # Show all models including non-fits
llmscan list --json                   # JSON output with machine profile + models
llmscan list --catalog my_models.json # Use a custom catalog file

explain -Deep-dive on a specific model

llmscan explain llama-3.1-8b-instruct              # Why does this model fit?
llmscan explain qwen2.5-72b-instruct               # Why doesn't it?
llmscan explain my-model --catalog my_models.json   # Explain from a custom catalog

search -Find GGUF models on Hugging Face

llmscan search llama              # Search for Llama GGUF models
llmscan search "codellama 13b"    # More specific search
llmscan search mistral --limit 5  # Limit results
llmscan search qwen --json        # JSON output

add -Add a model to your local catalog

VRAM/RAM requirements are auto-computed from the parameter count and quantization type.

# Add by specifying params and quant manually
llmscan add my-model --params-b 7 --quant Q4_K_M --family Llama
llmscan add my-model --params-b 7 --quant Q4_K_M --family Llama --notes "My fine-tune"

# Add from a Hugging Face repo (auto-detects params and quant)
llmscan add TheBloke/Llama-2-7B-GGUF

# Overwrite an existing entry
llmscan add my-model --params-b 7 --quant Q8_0 --family Llama --force

# JSON output
llmscan add my-model --params-b 7 --quant Q4_K_M --json

Supported quantization types: Q2_K, Q3_K_S, Q3_K_M, Q3_K_L, Q4_0, Q4_K_S, Q4_K_M, Q5_0, Q5_K_S, Q5_K_M, Q6_K, Q8_0, F16, IQ2_XS, IQ3_XS

Models are saved to ~/.llmscan/catalog.json and automatically merged with the bundled catalog.

remove -Remove a model from your local catalog

llmscan remove my-model   # Only removes user-added models, not bundled ones

Example Output

llmscan list --min-rating ok
┃ Model                        ┃ Family  ┃ Params ┃ Fit   ┃ Min VRAM ┃ Rec VRAM ┃ Rec RAM ┃
┃ llama-3.1-8b-instruct        ┃ Llama   ┃ 8B     ┃ great ┃ 5.0 GB   ┃ 6.2 GB   ┃ 10 GB   ┃
┃ mistral-7b-instruct-v0.3     ┃ Mistral ┃ 7B     ┃ great ┃ 4.4 GB   ┃ 5.5 GB   ┃ 8 GB    ┃
┃ phi-4-mini                   ┃ Phi     ┃ 4B     ┃ great ┃ 2.5 GB   ┃ 3.1 GB   ┃ 6 GB    ┃
...

Rating System

Rating Meaning
great GPU VRAM and RAM both meet recommended targets -best experience
ok Meets minimum requirements, may need moderate context limits or uses CPU-only inference
tight Runs with CPU offload, reduced context, or multi-GPU splitting -expect slower performance
no Hardware is below practical minimums

Supported Hardware

Vendor Detection Method Notes
NVIDIA nvidia-smi Discrete GPUs with CUDA
AMD rocm-smi GPUs with ROCm drivers
Intel xpu-smi, clinfo Arc and Data Center GPUs
Apple sysctl Apple Silicon unified memory (65% GPU estimate)
Windows Get-CimInstance, wmic Fallback for any GPU on Windows

Custom Catalogs

Create a JSON file with your own model entries:

[
  {
    "id": "my-custom-model-7b",
    "family": "Custom",
    "params_b": 7,
    "quant": "Q4_K_M",
    "min_vram_gb": 5,
    "recommended_vram_gb": 8,
    "recommended_ram_gb": 16,
    "notes": "My fine-tuned model"
  }
]

Then pass it with --catalog:

llmscan list --catalog my_models.json
llmscan explain my-custom-model-7b --catalog my_models.json

Required Fields

Field Type Description
id string Unique model identifier
family string Model family name (e.g., "LLaMA", "Mistral")
params_b number Parameter count in billions
quant string Quantization format (e.g., "Q4_K_M", "Q5_K_M")
min_vram_gb number Minimum GPU VRAM in GB
recommended_vram_gb number Recommended GPU VRAM in GB
recommended_ram_gb number Recommended system RAM in GB
notes string Additional notes about the model

Development

git clone https://github.com/adityaarakeri/llmscan.git
cd llmscan

# Install with dev dependencies
uv pip install -e ".[test,dev]"

# Run tests
uv run pytest

# Lint and format
uv run ruff check .
uv run ruff format .

# Type check
uv run mypy llmscan/

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes and add tests
  4. Ensure all checks pass: uv run pytest && uv run ruff check . && uv run mypy llmscan/
  5. Open a pull request

License

MIT -see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmscan-0.1.0.tar.gz (39.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmscan-0.1.0-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file llmscan-0.1.0.tar.gz.

File metadata

  • Download URL: llmscan-0.1.0.tar.gz
  • Upload date:
  • Size: 39.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llmscan-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dfcf2b76804cc20314c63375d88e0d7e58ea5028f76255054a8844aaa5ed21ef
MD5 a8b2f3c12036811bafd64c1d9510e247
BLAKE2b-256 c57148d0228ac4ed0cca0f7bc9756ec835664fe5d3146394e280057d0ef35bbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmscan-0.1.0.tar.gz:

Publisher: ci.yml on adityaarakeri/llmscan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmscan-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: llmscan-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llmscan-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ef8494dac3afa43f9c4e355cd2d55918838b8bd7f313a025aba69070f610e10
MD5 6fecc4d23fb3b6c1c0ac27b8ec96040a
BLAKE2b-256 d232cf2eb0d7b9da8b46d39eb83ea34967f261ef567faa6cbedbba2bac9c9328

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmscan-0.1.0-py3-none-any.whl:

Publisher: ci.yml on adityaarakeri/llmscan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page