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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.6-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.6-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.6-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.6-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 083a89a93ee4a1768d8d226774d3e467634a853f93536840eb4d77fd09fd2e90
MD5 eddd9df58cabc5864e641122821b2cff
BLAKE2b-256 5b11f1900dd730db03359361fddfa09707bd61f055f2f58fdd38965a08dea929

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.6-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.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fbf039c0b60b9a90a68467975b42640b6dfc932420d64d5181fc948098d3b867
MD5 16c549b37274ad596ab46719b7ad25df
BLAKE2b-256 00e3a641fe057d1ba268928e76ac5d3f984f886e82f48471ddd53ad1f7b2df93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 db61458fe6f3935338753c89587f0f55d14a344c937ee1ffd1a7ee1979508012
MD5 0831f01a8ff0bedf3b9cb2af97badaf1
BLAKE2b-256 68e3e1c53df3a0dc90b1d1bf972a872dc6184c0030571a8686f4b0cd8e67c67e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 84520f226e346a8ed0f6d24c84098049836483df2bcd6bbbcb3b142343cfb5b0
MD5 5e7fa9dbdf2e433d1d242408532c8c09
BLAKE2b-256 4f66df473aa559c6b050c45c3fc5299cc1f7035d40a7450994619148a1765971

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 7ae19f74f654ab07c0992cc659eee6bc8f6812dfe1ce97a98292480330cdceef
MD5 845989b34f2b33227759d6c693effe68
BLAKE2b-256 fa4ead18344d2e75364c20b8437c37797636a312ad41b4749bb46633df6afc57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 55861c33164bf970a0cf9f2dd097a5057b1d7e92e09a0b553a7f149921e2a118
MD5 f312db05d9b0f5e826a084cb9f3d312f
BLAKE2b-256 7f2161b17670085957c855c2a6be75005160032de918c42ec273d04f54b45370

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 20555e8dd8c6e194c19265ce88dc4dffafcd52f35906d2d332ed1ed28726f056
MD5 d1bcf5ff3c3029b4dac72aa4a834a5b9
BLAKE2b-256 211c7d45cd48df4b980c51e9ed51a4b3f3b4a1d975ea8f939c2b9e961fa8a8d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf579ad6ba0b237e3c3458081ff3acc57367047d1f4b1904ea167ce81575f8cc
MD5 f272ae3cfc5b26e0af50a56721f44a62
BLAKE2b-256 82cf67f1ae84ca27f2f5df948363373aa4596c6f5a23c4c15caca037d7e1cf92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.6-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c5166de4939782a9acd65c0f4864eeaff0bacf54bc0b11bd7ac8d4c6d7201910
MD5 151bff6cf99053e4d8ff80cf3e56a100
BLAKE2b-256 6c78b5b5f424375e0bcda52e19669608321d7814434ed53c311673ad852cf0cb

See more details on using hashes here.

Provenance

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

This release

1.1.6 This release

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