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

Uploaded Python 3Windows ARM64

llmfit-1.1.8-py3-none-win_amd64.whl (5.4 MB view details)

Uploaded Python 3Windows x86-64

llmfit-1.1.8-py3-none-musllinux_1_2_x86_64.whl (6.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

llmfit-1.1.8-py3-none-musllinux_1_2_aarch64.whl (6.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

llmfit-1.1.8-py3-none-manylinux_2_39_riscv64.whl (6.4 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ riscv64

llmfit-1.1.8-py3-none-manylinux_2_17_x86_64.whl (6.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

llmfit-1.1.8-py3-none-manylinux_2_17_aarch64.whl (6.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

llmfit-1.1.8-py3-none-macosx_11_0_arm64.whl (5.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.8-py3-none-macosx_10_12_x86_64.whl (5.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: llmfit-1.1.8-py3-none-win_arm64.whl
  • Upload date:
  • Size: 5.1 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.8-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 a69a0613f7c48c2b9619a4c9edad68edeb8126e8b8f0a9dd92cc8012cc3bef3d
MD5 b33e4939992e4624d97ec021e8e08f00
BLAKE2b-256 0f576b3841db795f2603245d041ad54767db004abffa3274c6ba482868944d25

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.8-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.4 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.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8c680913aee517f9988b558592a943c0433268cef364358d8891aeccd3236b77
MD5 741f57e234aeeb410cbeb483a780a666
BLAKE2b-256 1873bf5dcabe49eccc2cbb2d09f5c3a16b316754698c56eed99c013b2ca09f97

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe1fc57eac52071dc397455e4a5c46b6d7919ad44947dcc8623f90eb1c4107ec
MD5 538624df590b27e970644cc4a4680a40
BLAKE2b-256 a68d6ce02167bb490747720f64b4f8872013c0d65d61ecc21b7a88e18a17722e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f0e9adabcab7ddeed736a4892893c2c4fb06459bc95bfb2c38fe71faa7bad585
MD5 01395b6e500ac7a617a8df9235a68a03
BLAKE2b-256 3cdb975eff15a99fbd716f05607ca7b007765b138418c57b13813b4006b3a98c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 d2cf267114389dc1d80fcc8b990c4feffa6405033662d8a684926ee52f8f6c9c
MD5 cb66003170a665630d52fbc16a732089
BLAKE2b-256 7d25814110dd2c65d31eb4172c4285dc8e6d67fee155862cc73b2c7dbe61413b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bf90f1f2b2f4116189d0e7a10e71fa63497b09ea01cd2311a639cd2c31cae94a
MD5 5ad97305c5f9b22c38025ad3ac263a13
BLAKE2b-256 84dc13b1d1bc8cd8927b3e95ef92663e914d4b9bc104e27bcdf021d59530ff82

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5032f54357a5661b69d03bb015912b91469169e3d83121f6a48a49e96d02da5a
MD5 0c0b5b3d4c09eaa537befa34c606f884
BLAKE2b-256 efc1d732128405c6ece1f217bea5111cc1dff9fe9591722ef990faa1cc22cf53

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 509b014971d589a83e58ea8c73880c97c351f27317745f54152255fcf21e8e31
MD5 746dbcf71207de950259e311d5ba5192
BLAKE2b-256 d2e7f1a7d5a20cd55d1fc1a08ff0c256ad2f3880d7c7847a1b61cda2ea5623c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 16c5cf38a49400a10058ae21addf7bde28422a75a9a1f20b9351b39b7aa7ebc5
MD5 50779df1852982a542003f9ed21d3e07
BLAKE2b-256 caf27a2b1b306fdf5d5cea78baa3e58b3f9534640ea2d35c665dfc00157af495

See more details on using hashes here.

Provenance

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

This release

1.1.8 This release

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

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