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. 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 →

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 · 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.

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

Uploaded Python 3Windows ARM64

llmfit-1.1.7-py3-none-win_amd64.whl (5.2 MB view details)

Uploaded Python 3Windows x86-64

llmfit-1.1.7-py3-none-musllinux_1_2_x86_64.whl (6.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

llmfit-1.1.7-py3-none-macosx_11_0_arm64.whl (5.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.7-py3-none-macosx_10_12_x86_64.whl (5.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for llmfit-1.1.7-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 3d27309a5fad2494b8d8579b15ea5afbf71527e2b1e3aa33e988fbf88351ad97
MD5 4b3c386a5decc42a6c0d8809c446f021
BLAKE2b-256 760628382525ebabb544da412f9a1d2b2a1791e21d7b52d57b1a481594a33200

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for llmfit-1.1.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 52d9f5ec75494bde0a4285550cca60169a5e96d01ed9f5f8e8e9b06122e8903a
MD5 ca472226533464793e1f03fee4a4601f
BLAKE2b-256 a38e4f765dc3b5fca3f98efa6daeaadf84bb89a1c97b050da8f4a74b7a92e1a6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba918978fb305832c7c6f28942b16b59914737151a2daff879c91ac83fcf528b
MD5 0e6d9ba67817a86ff835dd501ef39050
BLAKE2b-256 31b4d1b7ecd6a71387dca3fdd7b853e97707ace275407faf028a2f9d05d68f45

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc62d3d48a7bb294c39bde1fc4c84897547f771b5826efa9aaa1bac27bf4a8df
MD5 a19c51f8670cef383bb51df490ab0865
BLAKE2b-256 fcca26cc6e11a446102c85d958be6a557509eb1794694fa5469eb559a3120626

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 cb13300e9722b987a923203ad4060567b7b1d8387f112ad9d184ca419b61e30b
MD5 d2d383345cad7bedc61d7bd49a2ca2cb
BLAKE2b-256 6ca4dd35ebe4be5382587f9da15378c99d745a0e3f6a02e4881104e713872af3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6d503d2f29cd7f139d8127e6c9ff472f8639c74348047c10135d4d13d98c6b23
MD5 e5a0b0fa37120cc39a5f03cf83eb61f9
BLAKE2b-256 ef1ba88873d337165c950bfb6000f94c00bf6dac1b256829d834990c1129b227

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 a7775ed6d67a58422f51c29234e1130bc9aa34c195d73dc68ec47d168cccb8f5
MD5 29d55bd6c190b188dc3581a8b2f9d211
BLAKE2b-256 3cab4486e90c77c5b92b4f4f3671245807a402a0b89ba204ae560a2ac0d89d59

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9e665dc07704f9705a84c2a33f41e4ab504b0a8f3d4fce3964e2398ba9ae048
MD5 a86851a1b62d73ac9362f37523c8730f
BLAKE2b-256 52ded4bd8819ba03430774a6b2f978610aa67753c2891a36c441c79c26eb060c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.7-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c1667bcc7c831667092fba45f1d63c5f9f15bb6ebe4a4a9f692cd1e2173ae87a
MD5 d55acb2089c413603aaa1a5729401920
BLAKE2b-256 c4cee8f4d692fa2e65535e3726cc7471a72e8ddb19eae13495af3c506954748e

See more details on using hashes here.

Provenance

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

This release

1.1.7 This release

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

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