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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.9-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.9-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.9-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.9-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 a31923fe8692adc8f1c0f20788743e39f43352b4797a384c2ef34e4a85a15a24
MD5 73ff9c5d4cbe21b84a8372480e055106
BLAKE2b-256 4c35c3fbba8b519786fdc293857d898f5638c00837bf7967666f08fbe8e7704b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.9-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.9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 01221721768a896d2bcf636390b75cfe0bdb02c562c89717566fd6d001a42aa6
MD5 af6a32b26cb3c4ba3462adcfadf4a631
BLAKE2b-256 b27cb581053d5499eb5bea170eb1ba3da3148a82969f8dacb2cb06f9d7229d6c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5c57a6cc6a902ba526050421ee931675083c75b0587bbdd1cbdb03cf11c8ad6e
MD5 adfded2c025f99e1fa3f87281fbe3f09
BLAKE2b-256 10b9f15147ab3122fbacce5b186fc0deff3d0287b9887ba1157b3dd8a22bfb67

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 db53042340fcacf06a67b2f69e9873e4f91795c72a29be282a4a76335b1f6c54
MD5 bdb243f29ec47db211c481a7240049a3
BLAKE2b-256 95abc32e0d25db87642c37fdbc4723ef604c636eb9f70e53975a9dc4e3c149ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 0fd9a9f9cc4f289bcf37d58959fff96cafdb76a830fb59576f4fd2fa7c3fb101
MD5 fa51231f84e9d25e89ea69fba8bc1800
BLAKE2b-256 6a0189706bad9e354f6cf2495f0022fc3817966fdda6f345ccc0720962e44cef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5b2a4e7b887043523ad10c4a1fb2102d7f268d521b9028a943f35b8a45dd4aa8
MD5 35fd8a659c549fd9ce71a3d962ce9375
BLAKE2b-256 ee3466b0dccb3ecc4e0c66210cb8bfd32936c4ff62a7f7824f70c3eac4749849

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d1b27a30cb8ec3f97762f5d31aa87799ec11ea4604da7b2f240d0d1b31011bd2
MD5 4861c41b66d195e462bb1229b601bf48
BLAKE2b-256 2e3deee8d54fa9a10a809e91e7dcf3333a14c4d45a837deb5b183466fb1978fd

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3a00fe6306fbb2ba01bcdbe4cf530a78048658867f175e123b736b6cbc51e982
MD5 e207bb3fd909bafd1bbb9fed254b1f3a
BLAKE2b-256 004d4bb59cd6d47da4e8edba8f05b35cf952680941aa051d0bfc4ffc8c2a9924

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.9-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f127d7da0d02663305ef61347f395dcd8f32f553fc6c44f9c2ed5e2da5e289ca
MD5 f357c43eb36f5e5bb23e40a5f0db3e81
BLAKE2b-256 2335c3ac4d019b75129657db2fe6aa1fe618844f32fbf8e663197c0b250c7c2e

See more details on using hashes here.

Provenance

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

This release

1.1.9 This release

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