Skip to main content

Hardware LLM capability scanner — know what runs on your machine

Project description

tinillm

Know what LLMs your hardware can run — locally, instantly.

pip install tinillm
tinillm scan

What it does

tinillm scan inspects your CPU, RAM, and GPU then tells you exactly which LLM model sizes can run on your machine, at what quality level, and how fast.

╭──────────────────────────────────────────────────────╮
│   tinillm scan — Hardware Report                     │
├──────────────────────────────────────────────────────┤
│  CPU    Intel Core i9-13900K   24c / 32t   5.8 GHz   │
│  RAM    32.0 GB total  ·  24.2 GB free               │
│  GPU    NVIDIA GeForce RTX 4090   24.0 GB   CUDA     │
│  OS     Linux                                        │
╰──────────────────────────────────────────────────────╯

  LLM Capability Matrix

  Model    Fit        Best Quant   Mem Needed   Tokens/sec
  ~1B      Perfect    Q8_0          1.9 GB        580 t/s
  ~3B      Perfect    Q8_0          3.8 GB        195 t/s
  ~7B      Perfect    Q6_K          6.2 GB         88 t/s
  ~13B     Perfect    Q5_K_M       10.1 GB         47 t/s
  ~34B     Good       Q4_K_M       21.8 GB         18 t/s

  1 model size(s) too large — use --verbose to show
  Perfect  ·  Good  ·  Marginal  ·  TooTight

Works on Linux, macOS, and Windows. No GPU required — CPU-only machines are supported too.


Install

pip install tinillm

Requires Python 3.11+. No other tools needed.


Usage

tinillm scan                # hardware + LLM capability report (default)
tinillm scan --verbose      # show all model sizes including ones that don't fit
tinillm scan --json         # machine-readable JSON (for scripts / CI)
tinillm scan --no-color     # plain text (safe to pipe to grep / awk / log files)

Scripting example

# Find all models that run perfectly on this machine
tinillm scan --json | python3 -c "
import json, sys
data = json.load(sys.stdin)
for fit in data['fits']:
    if fit['fit_level'] == 'Perfect':
        print(fit['model'], fit['best_quant'], fit['tokens_per_sec'], 't/s')
"

GPU support

Vendor Detection method
NVIDIA nvidia-smi → sysfs fallback
AMD rocm-smi → sysfs fallback
Apple Silicon system_profiler (unified memory)
Intel Arc sysfs + lspci
Windows (all) PowerShell WMI
Any vulkaninfo last-resort fallback

Fit levels explained

Level Meaning
Perfect Fits comfortably at Q4_K_M or better with ≥20% VRAM headroom
Good Fits but tightly
Marginal Fits only at heavy compression / reduced context, or CPU-only
TooTight Won't fit under any quantisation

Versioning

tinillm grows one feature at a time:

Version Feature
1.1 scan — hardware LLM capability scanner ← current
1.2 (next feature)

Part of the tini* family

Tool What it does
tiniRAG Privacy-first RAG CLI
tinillm Hardware LLM capability scanner

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

tinillm-1.5.0.tar.gz (43.7 kB view details)

Uploaded Source

Built Distribution

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

tinillm-1.5.0-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file tinillm-1.5.0.tar.gz.

File metadata

  • Download URL: tinillm-1.5.0.tar.gz
  • Upload date:
  • Size: 43.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tinillm-1.5.0.tar.gz
Algorithm Hash digest
SHA256 8def41fdaf5b805ab4f904e7a058dd18ab7d8cdb6baab787404fafeba21d3969
MD5 9113d9f537ea018f2b9f85a9732b45a5
BLAKE2b-256 1fd760befefd42cf050869b35816ce229a35eb206a3958c52088e68f6ad36da8

See more details on using hashes here.

File details

Details for the file tinillm-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: tinillm-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tinillm-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92648f60779fadb90a8443df030c5ea2df22091022c990d89f8f0f7dd93422d2
MD5 8b6072d9ead140028568dbb45a29e644
BLAKE2b-256 bda6423de5c7b8abdf5a4c641e193d8d37b91dd41e956f193e2ef58b5c35f8ba

See more details on using hashes here.

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