Skip to main content

AI Model Detector & Auto Downloader

Zero third-party dependencies · Deep hardware scanning · Live model registry · Evidence-based recommendations

A precise, transparent tool that scans your entire system — from CPU instruction sets to GPU drivers and available RAM — then queries the live Ollama library, Hugging Face, and community issue trackers to recommend and install the best local AI model for your hardware.

Version 2.0.0 — Zero third-party runtime dependencies. Uses only Python standard library.


Install

# Recommended: uvx (zero-install, no cache, runs directly)
uvx --no-cache ai-model-detector

# Alternative: pip3 (system-wide)
pip3 install --break-system-packages --no-cache-dir ai-model-detector

# From source (development)
git clone https://github.com/eliekh05/AI-Model-Detector-Auto-Downloader
cd AI-Model-Detector-Auto-Downloader
pip3 install --break-system-packages --no-cache-dir --no-deps -e .

Requirements: Python ≥ 3.11, internet connection (for live registry fetch)


Quick Start

# Scan hardware, fetch live registry, recommend + optionally install
ai-model-detector

# Filter by use-case
ai-model-detector --category code
ai-model-detector --category vision
ai-model-detector --category asr

# Show more recommendations
ai-model-detector --top 10

# Import a macOS system profile instead of live scan
ai-model-detector --import ~/Desktop/MyMac.spx

# Pull a specific model directly
ai-model-detector --pull llama3.2:3b

# Output full JSON (pipe to other tools)
ai-model-detector --json > results.json

# List already-installed models
ai-model-detector --installed

# Verbose output with full diagnostics
ai-model-detector -v

How It Works

1 — System Scan (zero dependencies)

Reads hardware directly from the OS using only the Python standard library:

Source Data collected
/proc/cpuinfo · sysctl · wmic CPU brand, cores, AVX / AVX2 / AVX-512 / F16C flags
os.sysconf · vm_stat · /proc/meminfo · GlobalMemoryStatusEx RAM total, RAM available
dmidecode · system_profiler · wmic RAM speed
nvidia-smi NVIDIA GPU name, VRAM, CUDA version
rocm-smi · rocminfo AMD GPU name, VRAM, ROCm version
system_profiler SPDisplaysDataType Apple Silicon GPU, Metal support
shutil.disk_usage Free disk space
ollama --version Ollama presence and version

On macOS, machdep.cpu.features and machdep.cpu.leaf7_features are both queried so AVX2 is correctly detected on Intel Macs.

On macOS, pass --import file.spx to read a system_profiler export instead of scanning live hardware.

2 — Live Registry Fetch (no caching)

Every run fetches fresh data — no model list is stored in the source code, no cache is created:

  • Ollama library — all available models with tags, sizes, and pull counts
  • Hugging Face API — top GGUF models by download count (shown for reference; flagged as manual-download only)
  • Ollama GitHub issues — open bug reports mapped to model names

If live data cannot be reached, the tool reports the failure clearly. It never silently falls back to stale data.

3 — Compatibility Evaluation

Each model is assessed with factual classifications — there is no universal 0–100 suitability score:

Signal What you see
Memory fit FITS · TIGHT · RISKY · DOES_NOT_FIT · UNKNOWN
Metadata confidence Verified (known size) vs UNVERIFIED (incomplete metadata)
Pullability Ollama-pullable vs HuggingFace-only (pullable ≠ runnable)
GPU vs acceleration GPU name reported separately from LLM acceleration status
Performance Estimated / inferred / unknown tok/s — never claimed measured unless measured
Recommendation labels Best fit · Lowest memory · Fastest estimated · Coding · Reasoning · Experimental · Not recommended

UNKNOWN is never treated as FITS. If no verified model fits available memory, automatic installation is disabled and you must explicitly override.

4 — Install

Runs ollama pull <model> with streaming output. Only models from the Ollama library are offered for auto-install — HuggingFace-only GGUF models are shown in the list but flagged as manual-download. If Ollama isn't installed, platform-specific install instructions are provided.

Confirmation is always required. The default answer is always n (no download without explicit approval).


Evidence Model

The detector distinguishes between what it knows and what it infers:

Hardware detection layers

Layer What it means Confidence
GPU hardware detected A GPU device was found by the OS High
Compute API available Metal/CUDA/ROCm driver is present High
Backend supports that API Ollama/llama.cpp can use the detected GPU Medium (inferred from API presence)
Backend initialized GPU The backend confirmed GPU use at startup Unknown (not verified externally)
Inference uses GPU An actual model run confirmed GPU acceleration Unknown (not verified externally)

Important: Detecting an integrated GPU (e.g. Intel Iris Plus Graphics) does not mean Ollama can use it for LLM acceleration. The tool reports this honestly: "GPU detected but backend acceleration is not established."

Memory estimation

Memory estimates combine:

  • Model weights (from size metadata or parameter-count heuristics)
  • KV cache (estimated from parameter count × context length)
  • Runtime overhead (Ollama base + activation + OS reserve + safety headroom)
  • GPU shared memory reserve (for integrated GPUs)

These are estimates, not measurements. Available RAM is a snapshot at scan time, not a guarantee at load time.


CLI Reference

usage: ai-model-detector [options]

options:
  --import FILE        Import a macOS .spx system profile
  --category CAT       Filter: asr, audio, chat, coding, reasoning,
                       embeddings, vision, translation, multimodal, unknown
  --top N              Number of recommendations to show (default: 5)
  --json               Output full results as JSON
  --installed          List already-installed Ollama models
  --pull MODEL         Pull a specific model (e.g. llama3.2:3b)
  --no-hf              Skip Hugging Face supplemental data
  --verbose / -v       Enable verbose logging
  --version            Show version and exit

Project Structure

src/ai_model_detector/
├── __init__.py      — version, author
├── __main__.py      — python -m support
├── scanner.py       — hardware profiler (stdlib only)
├── registry.py      — live model registry fetcher (stdlib only)
├── scorer.py        — compatibility evaluation + recommendations
├── downloader.py    — ollama pull wrapper
├── display.py       — terminal UI (ANSI, no rich)
└── cli.py           — CLI entry point (argparse, no click)

Supported Platforms

  • macOS — Intel and Apple Silicon, Metal detection, .spx import
  • Linux — NVIDIA (CUDA), AMD (ROCm), Vulkan detection
  • Windows — NVIDIA (CUDA), AMD detection
  • Python ≥ 3.11

Development

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/

# Bump version
python scripts/bump_version.py 2.1.0

What Changed in 2.0.0

  • Zero third-party runtime dependencies — removed psutil, requests, rich, click, pywhat
  • No application caches — live data only; failures reported clearly
  • Hardware detection via stdlib — subprocess calls, ctypes, /proc/cpuinfo, sysctl
  • HTTP via urllib.request — no requests library
  • Terminal UI via ANSI codes — no rich library
  • CLI via argparse — no click
  • Clearer acceleration reporting — GPU detection ≠ LLM acceleration
  • UNKNOWN never treated as FITS — evidence-based compatibility states only
  • No numerical scores — factual classifications only

License

MIT — see LICENSE

Metadata

Release files for ai-model-detector 2.1.0

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

Source distribution (sdist)

Source distribution for ai-model-detector 2.1.0
File Size Uploaded
ai_model_detector-2.1.0.tar.gz 50.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ai-model-detector 2.1.0
File Interpreter ABI Platform
ai_model_detector-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 96.0 kB

Release files / ai_model_detector-2.1.0.tar.gz

Download URL ai_model_detector-2.1.0.tar.gz
Size 50.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9901e96e88c1e40b38b53ac9a2e77283ed1620516fb468d1e6f524c06945750f
BLAKE2b-256 checksum
How to use checksums
0e3d1b9c03811e406f83cc7a82233555d94a5a19d176adbe30755170979eddaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / ai_model_detector-2.1.0-py3-none-any.whl

Download URL ai_model_detector-2.1.0-py3-none-any.whl
Size 45.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a1612481802b610ff43afefde4f4c6146b03c9761ee14d3d55963d83cff4a071
BLAKE2b-256 checksum
How to use checksums
a24331e39a98ededd2e33b6a1a28bd1ab334b16ff520ef3ee2be6b0fec5c2c14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.0

2 release files

1.10.0

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

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