Skip to main content

llmfit

llmfit icon

English · 中文 · 日本語

CI Crates.io License Signed with SignPath

📊 New: benchmark & share — real numbers from your machine, better estimates for everyone. llmfit bench --share measures real tok/s on your hardware and contributes it back to the project as a PR — no gh CLI, no third-party account. Every run is saved locally first (skip sharing, upload the backlog any time), 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 and calibrated estimates before they ever run a benchmark. Get started with sharing →

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

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.

demo

Documentation

Get started Install · Usage · How it works
Guides TUI guide · 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.

Docker / Podman

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

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.

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

Full reference: CLI & automation.


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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

llmfit-1.1.4-py3-none-win_arm64.whl (4.8 MB view details)

Uploaded Python 3Windows ARM64

llmfit-1.1.4-py3-none-win_amd64.whl (5.1 MB view details)

Uploaded Python 3Windows x86-64

llmfit-1.1.4-py3-none-musllinux_1_2_x86_64.whl (6.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

llmfit-1.1.4-py3-none-musllinux_1_2_aarch64.whl (6.1 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

llmfit-1.1.4-py3-none-manylinux_2_39_riscv64.whl (6.1 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ riscv64

llmfit-1.1.4-py3-none-manylinux_2_17_x86_64.whl (6.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

llmfit-1.1.4-py3-none-manylinux_2_17_aarch64.whl (6.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

llmfit-1.1.4-py3-none-macosx_11_0_arm64.whl (5.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.4-py3-none-macosx_10_12_x86_64.whl (5.6 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file llmfit-1.1.4-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.4-py3-none-win_arm64.whl
  • Upload date:
  • Size: 4.8 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for llmfit-1.1.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 7deb0719e6acb40a5f048c328dceeb07cff10e5bff45b5925f7b85769590446d
MD5 7a057cb89110ec45e414b3158755014d
BLAKE2b-256 5803494f46b4ee91179ce46087d79dfe65f1df49a48e31aec18ab2459ed46398

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-win_arm64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: llmfit-1.1.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.1 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for llmfit-1.1.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a6dc98d191d02fb0029d2c4a76e522e5453b91e334b5ef4e5a7b5dc7e4aec231
MD5 f713c223ea491eb3bb56fffcaf875875
BLAKE2b-256 48f3a6bad6d017e3480d31981437ba52ed8e7610ad33d3dfbfe6e69c09a3cbd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-win_amd64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7b22ec4ae5412f8ac82ea5a9f44a284430eeb10fce5206b180fed0e80957f215
MD5 1f55653fc340dd6b1aaac4beb9985c09
BLAKE2b-256 58309e02b1b591275b72bca69e5df284d347dc1ff8cd4327fb40100ca26ffc5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0c6e581f14b8cafef8096d292e581d54c174e296d99d7d1de800e442c463796a
MD5 00c8cce29c561c6e042ee275c9899e07
BLAKE2b-256 aecdfaec970f4f548daded563ecb9b28c5cb4c52d56394361125bf2df739e603

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 ad99f0d73e6e9aaf8dc71b16b3a2525e554ad0c041603490279bd1239f3d3811
MD5 76b26c4ea25eafbc86653c8bc0770a19
BLAKE2b-256 7f1adeb11cb5c07cff54880a347a5c877c1b1505857685e8da5997b503777624

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-manylinux_2_39_riscv64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9c808e91c2ab5ca04e845aad6be5102e31987421b50ed3943599477216087533
MD5 0d73aa282b0104e564c83fb66e53bb79
BLAKE2b-256 6c08035afff6a557f1b3b4cd36d0d67d6bc597fc139e821c9dd1e41c5fcde815

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-manylinux_2_17_x86_64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 3534f40f4dbe4f1c5f1019401dfc013b50786967cd309721913f409380e7b7bd
MD5 1536d5d599993dd8aedb0a0f709bc356
BLAKE2b-256 2e975ba1ab5554bca5a5d3dec57880d0518ee07c7ee87a528db1ca808b99ab73

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-manylinux_2_17_aarch64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 622da2dcfcd7da470b115dc67b7db0ecf1f4425fb98b7641d213bbab440ba39a
MD5 c911ef6c0290ab11d086c168a10954d6
BLAKE2b-256 de235a68b4d834c1eef4a3f391e0908908f4395b9755eb453f8dc84ae9829e23

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmfit-1.1.4-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bfe789250319336ce63056a9940f645d91cc1129db797ef6e808b506e2f4f4c9
MD5 c2c4546975657b43314c289bac74d75b
BLAKE2b-256 1c4bd7f738599a7c7ea203629f17bbf82e263124de374907e795f41bb831279c

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.4-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on AlexsJones/llmfit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.1.10

9 files

1.1.9

9 files

1.1.8

9 files

1.1.7

9 files

1.1.6

9 files

1.1.5

9 files

This release

1.1.4 This release

9 files

1.1.3

9 files

1.1.2

9 files

1.1.1

9 files

1.1.0

9 files

1.0.1

9 files

1.0.0

9 files

0.9.38

9 files

0.9.37

9 files

0.9.36

9 files

0.9.35

9 files

0.9.34

9 files

0.9.33

9 files

0.9.32

9 files

0.9.31

8 files

0.9.30

8 files

0.9.29

8 files

0.9.28

8 files

0.9.23

8 files

0.9.22

8 files

0.9.21

8 files

0.9.20

8 files

0.9.19

8 files

0.9.18

8 files

0.9.17

8 files

0.9.16

8 files

0.9.15

8 files

0.9.14

8 files

0.9.13

8 files

0.9.12

8 files

0.9.11

8 files

0.9.10

8 files

0.9.9

8 files

0.9.8

8 files

0.9.7

8 files

0.9.6

8 files

0.9.5

8 files

0.9.4

8 files

0.9.3

8 files

0.9.2

8 files

0.9.1

8 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page