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.1-py3-none-win_arm64.whl (4.8 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

llmfit-1.1.1-py3-none-manylinux_2_17_x86_64.whl (6.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.1-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.1-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.1-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.12

File hashes

Hashes for llmfit-1.1.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 9c1f16e2691c72100f7d2ec5201636fb5a75c28279402f92aa87b0093fb792df
MD5 af9c21c9707a3d95525e6fe4c458120f
BLAKE2b-256 45ccfcd197e7870627e90ac1155c85c1bc6cd7880a1b31528dc312ea10ae0ae3

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: llmfit-1.1.1-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.12

File hashes

Hashes for llmfit-1.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 30842aa397f49010b7470cc95a9b8fd444092c1132027237ae3f04fe190fe094
MD5 84dc1d7d45ed6c3d609bed76009062ba
BLAKE2b-256 cc87beb27a2cd6e80d92920d2e6cfddd8d76971f2810121b487e0fd15c5b8984

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9a43102faa6a2c64fa7256586a6c851d94f597ade06371fecd46101e2882eec0
MD5 7a28c6d559ed720d4733877c17a62394
BLAKE2b-256 df31af17cc734b8e855c1370d292a8b2c19982a049dc43e1130f2450f9f34cbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ffc3d8b47734342cca6396cd7c0d2d45d434557135855653b376a5cc03e8d8a6
MD5 bf59c27a10b2431268ffa15f15574230
BLAKE2b-256 df15a5e60f77907138c62c6749af994aef58588ef61d5c0efb633b021e45c3c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-manylinux_2_39_riscv64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 34c8a6f6f80e36249ad49c3255bc2be20894af1a16767db51e7dcad332a6251d
MD5 90b6d63b898fdfd9e992c2645ede8e8b
BLAKE2b-256 607cf94b3f86e2ead322d0307fb04782251a921a1fb40d62018bf2e5a41cb10e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 adef66cde772e7961c90b7ee8246978ebbca951ecca2a2aba62f6d2b5793e4a4
MD5 e9ab5a90d999fa152efd6dd7260d46b7
BLAKE2b-256 406a3e1d6c94c78ba5362d79faf42778d063ef595c6769e9c408582577f51d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 2b4fd7c3a49cfd96982455855250509056f7fc2bcbd18aa7699cf28be296f165
MD5 4df6a793451cf5321ed58479fe409a1c
BLAKE2b-256 7d7384e726feebcf332c299e10e12b2434340f7b84b52bcd7113e5bcf68b8760

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0910d98f948f7d056fc5409d5874228709521da46a6e6330d23460ddd9915e53
MD5 04cc95b504a0b36eaf9c7cd9609c150f
BLAKE2b-256 855da7cc19c76c4aa4b3ad91b1776d6a9e94b4022796847bb28c991e54a64c61

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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.1-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for llmfit-1.1.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c383b5a1f8e3657d801f19c9e920d5536869bd54548ddbeca910f5ff0e9e6ea7
MD5 029642315052c6d0abf595c55f983465
BLAKE2b-256 c3541a99b92ae120a9343973bf98b2cb948c103aa208299db720716216b8ec99

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmfit-1.1.1-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

1.1.4

9 files

1.1.3

9 files

1.1.2

9 files

This release

1.1.1 This release

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