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.3.0.tar.gz (38.2 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.3.0-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tinillm-1.3.0.tar.gz
  • Upload date:
  • Size: 38.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for tinillm-1.3.0.tar.gz
Algorithm Hash digest
SHA256 0ed5c5c959fb1e822c77a3044c01b16c1cd0c6138ff14b86c5694eb16d515ff0
MD5 160de9a221fc001015d1933e275a8535
BLAKE2b-256 ef76548d8f814e4b198585b00a187085ad6a4a1a3318bf04481af4491f0caca5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinillm-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 36.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for tinillm-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf3ace0c7ff69df4a7b9cc610737f496c5f5d3ddca0d2722e64940a10737d40a
MD5 2df741f2a9c3e8ff7de8c052a9658106
BLAKE2b-256 8cc5e027a9b1f1e99b37e5993bb35a45529915c5cbd20f7e6ebbfe103f541b83

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