Skip to main content

llmfit

llmfit icon

English · 中文 · 日本語

CI Crates.io License Signed with SignPath

Find out which open-source Large Language Models (LLMs) your hardware can comfortably run. llmfit inspects your CPU, system RAM, GPU(s), VRAM, and accelerator configuration to recommend models across popular quantizations.

📊 New: benchmark & share — real numbers from your machine, better estimates for everyone. Download a model, serve it, and measure real tok/s on your hardware — then contribute the results back to the project as a PR, straight from the TUI. No gh CLI, no third-party account. Every run is saved locally first, your own measurements replace estimates in the fit table, and each merged submission ships in the next release: anyone on identical hardware gets measured ✓ numbers before they ever run a benchmark. Follow the step-by-step benchmarking guide →

Previously: llmfit 1.0 — the release where the numbers became verifiable →

Features

  • Hardware Auto-Detection: Detects CPU cores, system RAM, available discrete/integrated GPUs, VRAM, and unified memory architecture (NVIDIA CUDA, Apple Silicon, AMD ROCm, Intel OneAPI).
  • Model Compatibility Engine: Analyzes model parameter counts, context lengths, and quantization formats (GGUF, AWQ, GPTQ, EXL2) to project memory footprints and tokens-per-second performance.
  • Interactive TUI & Web Dashboard: Choose between a lightweight, zero-dependency terminal interface or a feature-rich web dashboard.
  • REST API Endpoint: Exposes standard HTTP JSON endpoints (/api/v1/system, /api/v1/models) for integration into orchestrators, dashboards, and automated deployment pipelines.
  • Multi-Platform Support: macOS (Apple Silicon & Intel), Linux (x86_64 & ARM64), and Windows (x86_64).
  • Hundreds of models & providers. One command to find what runs on your hardware.

A terminal tool that right-sizes LLM models to your system's RAM, CPU, and GPU. Detects your hardware, scores each model across quality, speed, fit, and context dimensions, and tells you which ones will actually run well on your machine.

Ships with an interactive TUI (default) and a classic CLI mode. Supports multi-GPU setups, MoE architectures, dynamic quantization selection, speed estimation, and local runtime providers (Ollama, llama.cpp, MLX, Docker Model Runner, LM Studio).


Sister projects

  • sympozium — managing agents in Kubernetes.
  • llmserve — a simple TUI for serving local LLM models. Pick a model, pick a backend, serve it.
  • llama-panel — a native macOS app for managing local llama-server instances.
  • llmfit-gui — a Windows desktop GUI (PowerShell + WinForms) for llmfit: browse recommendations, download into LM Studio/Ollama, and benchmark, all point-and-click.

demo


Documentation

Get started Install · Usage · How it works
Guides TUI guide · Benchmarking step-by-step · CLI & automation · Runtime providers · OpenClaw integration
Reference How it works (full) · Platform & GPU support · Custom models · Development
Project Contributing · Alternatives · Code signing · License

Install

Windows

scoop install llmfit

If Scoop is not installed, follow the Scoop installation guide.

macOS / Linux

Homebrew

Prebuilt binary (recommended, works on all macOS/Linux versions):

brew install AlexsJones/llmfit/llmfit

Or from the homebrew-core formula, which builds from source on macOS versions without a bottle:

brew install llmfit

MacPorts

port install llmfit

Quick install

curl -fsSL https://llmfit.axjns.dev/install.sh | sh

Downloads the latest release binary from GitHub and installs it to /usr/local/bin (or ~/.local/bin if no sudo).

Install to ~/.local/bin without sudo:

curl -fsSL https://llmfit.axjns.dev/install.sh | sh -s -- --local

uv / pip

To install or update llmfit:

uv tool install -U llmfit

To run without installing:

uvx llmfit

You can also install llmfit as a Python package in the normal way with tools such as pip or uv.

Pre-built Binaries

Download signed release binaries for Linux, macOS, and Windows directly from the GitHub Releases page.


Container Deployment

llmfit provides a multi-architecture Docker image (ghcr.io/alexsjones/llmfit) supporting both interactive CLI/TUI and headless Web UI / API server modes.

Interactive TUI

To launch the interactive TUI instead, pass the global --tui flag:

docker run -it --rm ghcr.io/alexsjones/llmfit --tui

Non-Interactive

This prints JSON from llmfit recommend command.

docker run ghcr.io/alexsjones/llmfit

This prints JSON from llmfit recommend command. The JSON could be further queried with jq.

podman run ghcr.io/alexsjones/llmfit recommend --use-case coding | jq '.models[].name'

To launch the interactive TUI instead, pass the global --tui flag:

docker run --rm -it ghcr.io/alexsjones/llmfit --tui

From source

git clone https://github.com/AlexsJones/llmfit.git
cd llmfit
cargo build --release
# binary is at target/release/llmfit

Usage

Terminal Interface (TUI)

Launch llmfit in your terminal without flags to start the interactive browser:

llmfit          # interactive TUI: your hardware, every model, ranked

The TUI shows your detected specs at the top and every model scored for fit, speed, quality, and context. See the TUI guide for navigation, planning, simulation, downloads, the community leaderboard, and benchmarking.

Keybindings inside the TUI:

  • Tab / Shift+Tab: Switch tabs (Models, System Info, Benchmark)
  • ↑ / ↓ or k / j: Navigate list items
  • /: Filter models by name, family, or quantization
  • Esc: Clear search / Back

Command Line Options

# Print hardware telemetry and recommended models to standard output
llmfit recommend

# Output system profile and recommendations in raw JSON format
llmfit recommend --json

# Start the native HTTP API server
llmfit serve --host 0.0.0.0 --port 8787

Web UI & API Server

docker run -d -p 8787:8787 ghcr.io/alexsjones/llmfit serve

Docker Compose

---
services:
  llmfit:
    image: ghcr.io/alexsjones/llmfit:latest
    container_name: llmfit
    restart: unless-stopped
    command: ["serve", "--host", "0.0.0.0", "--port", "8787"]
    ports:
      - "8787:8787"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8787/health"]
      interval: 15s
      timeout: 5s
      retries: 3
      start_period: 10s

For scripts, agents, and classic terminal output:

llmfit fit                    # table of all models ranked by fit
llmfit recommend --json       # top picks as JSON (agent/script consumption)
llmfit info "<model>"         # one model: fit analysis, estimate basis, verify commands
llmfit bench                  # measure real tok/s/TTFT against your running provider
llmfit doctor                 # hardware detection report for bug reports
llmfit serve                  # start the api and web user interface

Full reference: CLI & automation.


Community & Benchmarks

llmfit includes hardware detection and performance benchmarks contributed by the community. You can share your hardware benchmark results using:

llmfit bench --share

How it works

llmfit detects your hardware (RAM, CPU, GPU/VRAM, backend), then scores every model in its catalog across four dimensions: memory fit, estimated speed, quality, and context. Speed estimates come from a memory-bandwidth model grounded in runtime sampling and real community measurements — and every estimate ships its inputs, so llmfit info shows exactly what a number assumes and how to verify it on your machine.

Full detail, including the estimation formulas and the model database: How llmfit works.


Contributing

Contributions are welcome, especially new models.

Before submitting a PR

Please run cargo fmt before pushing your changes. Most CI check failures are caused by unformatted code:

cargo fmt

Guides for adding models — locally (no rebuild) or to the built-in catalog: Custom models.


Alternatives

If you're looking for a different approach, check out llm-checker -- a Node.js CLI tool with Ollama integration that can pull and benchmark models directly. It takes a more hands-on approach by actually running models on your hardware via Ollama, rather than estimating from specs. Good if you already have Ollama installed and want to test real-world performance. Note that it doesn't support MoE (Mixture-of-Experts) architectures -- all models are treated as dense, so memory estimates for models like Mixtral or DeepSeek-V3 will reflect total parameter count rather than the smaller active subset.


Code signing

llmfit's Windows release binaries are digitally signed (Authenticode) via SignPath.io, with a free code signing certificate provided by the SignPath Foundation.

Signing happens automatically in the release pipeline: only artifacts built by GitHub Actions from this repository are submitted for signing, and signing requests are approved by the project maintainer (@AlexsJones).

Code signing policy: see the SignPath Foundation code signing policy and terms.

Privacy: this program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it. llmfit only contacts external services when you explicitly use the corresponding feature (e.g. model downloads, runtime provider queries, or the community leaderboard).


License

MIT

Metadata

Release files for llmfit 1.1.13

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

Built distributions (wheels)

Table of built distributions (wheels) for llmfit 1.1.13
File
llmfit-1.1.13-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
llmfit-1.1.13-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
llmfit-1.1.13-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
llmfit-1.1.13-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
llmfit-1.1.13-py3-none-manylinux_2_39_riscv64.whl Python 3 none Linux glibc 2.39+ RISC-V 64 Details
llmfit-1.1.13-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
llmfit-1.1.13-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
llmfit-1.1.13-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
llmfit-1.1.13-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 57.2 MB

Release files / llmfit-1.1.13-py3-none-win_arm64.whl

Download URL llmfit-1.1.13-py3-none-win_arm64.whl
Size 5.4 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
4e888a6205f285c5b29285c8202f736487f4a81791c51ff892c961e547f2d33f
BLAKE2b-256 checksum
How to use checksums
7c60b930985e13c04e78354077f571aee84d9d7b3793dcecac00640755bd6d1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-win_amd64.whl

Download URL llmfit-1.1.13-py3-none-win_amd64.whl
Size 5.8 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
cf43c6ab6331a671ed453451d72a06c7a2b4c7f296a8ad552eda213137b58686
BLAKE2b-256 checksum
How to use checksums
d6550c25dfd20822ae82b4462aaba471ba61aa15b3cbc71cb55c60a4e90ee8df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-musllinux_1_2_x86_64.whl

Download URL llmfit-1.1.13-py3-none-musllinux_1_2_x86_64.whl
Size 7.0 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
d3c088a76f71c31fc5e50a7b92ea573e882063a8366512b0524e82d486c1265a
BLAKE2b-256 checksum
How to use checksums
8995b1fef86906df6eae97d6b0836f386ca4d5e55b375b2ddb26ba52eef2c839
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-musllinux_1_2_aarch64.whl

Download URL llmfit-1.1.13-py3-none-musllinux_1_2_aarch64.whl
Size 6.7 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
e12bea8bde34935e3559b9b12fd791d08026106e580537f1dbf5fe693d3a56ab
BLAKE2b-256 checksum
How to use checksums
de8163b24d60f3e8b1db5980d0eaefe59f6a8dda565a544be91c83564f6e1866
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-manylinux_2_39_riscv64.whl

Download URL llmfit-1.1.13-py3-none-manylinux_2_39_riscv64.whl
Size 6.7 MB
Tags Linux glibc 2.39+ RISC-V 64 Python 3
SHA-256 checksum
How to use checksums
309b1196ca5aeb0d6271c40904b38986df5a0eb706b38c0a7789ce6b9c9af808
BLAKE2b-256 checksum
How to use checksums
1945f6de2d3152d04f0b506ee85a0765ef66ecb17077c4eff84f6bff62fa8ab0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-manylinux_2_17_x86_64.whl

Download URL llmfit-1.1.13-py3-none-manylinux_2_17_x86_64.whl
Size 6.7 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
65fa0a0584c48d70e851e8730c30dea2440328758731a21f5cf7b325c8b50906
BLAKE2b-256 checksum
How to use checksums
7abbcca479945fd20e5611d45ad9ebf3afb89f37fe29176558ab19dca19ea4af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-manylinux_2_17_aarch64.whl

Download URL llmfit-1.1.13-py3-none-manylinux_2_17_aarch64.whl
Size 6.6 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
30d286e1efb7cfdc9f11863cd30f0608e3b1a7d946b3113e3de81b93429b857d
BLAKE2b-256 checksum
How to use checksums
b2ddec5f7798bbc869a110ff4e33591da788d5edd0de8da2e14a078236d673e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-macosx_11_0_arm64.whl

Download URL llmfit-1.1.13-py3-none-macosx_11_0_arm64.whl
Size 6.1 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e2c9a634a829ce65ab32e37a980c05ea5c490366ba7f95d0c79477d241e7ec9
BLAKE2b-256 checksum
How to use checksums
42ace0a6c31cde114c48516e18471f3b4cf171673ad6f22f0b75f9699cde8a08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release files / llmfit-1.1.13-py3-none-macosx_10_12_x86_64.whl

Download URL llmfit-1.1.13-py3-none-macosx_10_12_x86_64.whl
Size 6.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
da29e4a99d58cda4c13c5069cea561139611f019edb4630c1d2ef2bb55091ba8
BLAKE2b-256 checksum
How to use checksums
43e5b8f2c85ff22149a7d92febd578242124878b16140e04a7dfeac7012b1db3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 3, 2026.

Transparency log

Release history Release notifications | RSS feed

1.1.16

9 release files

1.1.15

9 release files

This release

1.1.13 This release

9 release files

1.1.12

9 release files

1.1.11

9 release files

1.1.10

9 release files

1.1.9

9 release files

1.1.8

9 release files

1.1.7

9 release files

1.1.6

9 release files

1.1.5

9 release files

1.1.4

9 release files

1.1.3

9 release files

1.1.2

9 release files

1.1.1

9 release files

1.1.0

9 release files

1.0.1

9 release files

1.0.0

9 release files

0.9.34

9 release files

0.9.33

9 release files

0.9.32

9 release files

0.9.29

8 release files

0.9.28

8 release files

0.9.23

8 release files

0.9.18

8 release files

0.9.17

8 release files

0.9.16

8 release files

0.9.15

8 release files

0.9.14

8 release files

0.9.13

8 release files

0.9.12

8 release files

0.9.11

8 release files

0.9.10

8 release files

0.9.9

8 release files

0.9.8

8 release files

0.9.7

8 release files

0.9.6

8 release files

0.9.5

8 release files

0.9.4

8 release files

0.9.3

8 release files

0.9.2

8 release files

0.9.1

8 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