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.1.0.tar.gz (25.4 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.1.0-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: tinillm-1.1.0.tar.gz
  • Upload date:
  • Size: 25.4 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.1.0.tar.gz
Algorithm Hash digest
SHA256 86a05c9e4de09b5ac27b2b926b7208e42918ab1b04d1e92a78aa2ae8105d57c2
MD5 2733d83e9d92bdc1367f1fca79ec12b2
BLAKE2b-256 a34a1c61f0e1cebbc268179c2aace685736c67984500d7efb6881d8bffca16bb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tinillm-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.3 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce650d12d1c01bf3dd13088bc83b7e7f3f28fdd08ba7fe7966a58f99b53b0fa2
MD5 322d65cda1a359662e7e21a140e34657
BLAKE2b-256 0b8904fdad9b0aef07aef6d8c579844b606a14a4744e84045461a00f5780e4d5

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