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

Uploaded Python 3Windows ARM64

llmfit-1.1.10-py3-none-win_amd64.whl (5.5 MB view details)

Uploaded Python 3Windows x86-64

llmfit-1.1.10-py3-none-musllinux_1_2_x86_64.whl (6.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

llmfit-1.1.10-py3-none-musllinux_1_2_aarch64.whl (6.4 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

llmfit-1.1.10-py3-none-manylinux_2_17_x86_64.whl (6.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

llmfit-1.1.10-py3-none-manylinux_2_17_aarch64.whl (6.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

llmfit-1.1.10-py3-none-macosx_11_0_arm64.whl (5.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.10-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.10-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.10-py3-none-win_arm64.whl
  • Upload date:
  • Size: 5.2 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.10-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 6c8f04bfb3d94741065767c7b74a86f25d88a587b4f138f3e47a930a69e9158c
MD5 6ddde028c130397339b2f4484d55eb85
BLAKE2b-256 5ac9d675e4012c27c58d1174a052e31f308f563b04ab757d908296307d3fe40d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.10-py3-none-win_amd64.whl
  • Upload date:
  • Size: 5.5 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.10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ed1847cd5e069a0fc133b83d5689017bb3e6b63993fefbe87719788a8ef32341
MD5 aeacd7577fb1f853db74cb9dc51f2104
BLAKE2b-256 a95b39c41fae0a4ad1d52c75ac57b9f9d7719abfa5509e3ce9126346a6aede2b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0686376469ca313c177a25de2465c29e08c09a17a3716c58506d535634e3dbdd
MD5 46da221a26d2491ccae6358214b94810
BLAKE2b-256 2e45fe618d1a771d5b009f51893dbdf0b7f01f06d3be9feefde1685321cdfb15

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b6f96ccce4a3912a2df59c26438fddf9608a23ef0b72d33a13fe58578eb5e9b8
MD5 91c820d687659b53bd057723740d05ef
BLAKE2b-256 18de6859c893a1d1ed4fa2f8b03ee65de8ecb8b09f74cc3f7562864a363b76d4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 b0ce911e3ee3d2c92fca132f36e26237e49e392ca158642e48370e642d91f560
MD5 c01da527ad0ccb6d805418ba5081d439
BLAKE2b-256 3015c08c9578a4ff0117ee7afb1302ea3b59ef58512a4371e9e8bc5fed34c32a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9ac9a88d4220dff2dac60d57898537e49c3bf0daf5872daeef0f79a5419ff194
MD5 2c0dc9cadbda5ed925f50e405ba2051b
BLAKE2b-256 1ee9f37bdb4182dc03efa95cc047dcdb187f821e286e3a238916c5917282d5dc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 866cbb73064cf2a4201c44fed033713ec925c6cca3944b116a6b426a8f0b705f
MD5 7d80d98a3031bba12bf16713a01ece9b
BLAKE2b-256 a916da9f4a4b265e3aa17a3cd08b1f3f59a98d6106c07e3f10f1b090724bb726

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a0b02f3234494cd2878bec57e29c02238fd22adca3c3634a8e36136c5f24023
MD5 2bbf58f28b5a0895e87b8c80307a8b6b
BLAKE2b-256 12ddd8d3d36831286724466afb80c106fc0795116607328bdbc0bc8e4aa19ee4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.10-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dd987a7fde1299eb32109785a87880cda244c018564bef938c8e8c0207788c7e
MD5 a2be56918f96819e675826ceac20cc9f
BLAKE2b-256 c1c7e020e564d6fb5f68ca11ea95606b91230726483eed1c3b822b2f235476ce

See more details on using hashes here.

Provenance

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

This release

1.1.10 This release

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

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