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. llmfit bench --share measures real tok/s on your hardware and contributes it back to the project as a PR — no gh CLI, no third-party account. Every run is saved locally first (skip sharing, upload the backlog any time), 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 and calibrated estimates before they ever run a benchmark. Get started with sharing →

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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.3-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.3-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.3-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.12

File hashes

Hashes for llmfit-1.1.3-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 fdb68cdb18e37f9435872c13310c46e63ba66a525317a371dacfd576864ab3d3
MD5 f31e153dcf5912671331bab74b95ccd6
BLAKE2b-256 7c1322bfeb1ac9281d533f9bf4e5672ae3e742a62321925d40c8e3dd6cc8db5f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.3-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.12

File hashes

Hashes for llmfit-1.1.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f98d472c225d2cedafa898087dd8ba602bc56d48d70e8ea47110a200c969fa24
MD5 e19158c29351cf0a8c6b4853bc162348
BLAKE2b-256 2cae8fdddaba8fe28354921b0194c3a6f9443968387543a5de0365d8c761404e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bddc827cb464d0e2f37a3a476ccbeb4534b6701b3d2acf35ba0d79564fdb8d41
MD5 5aaa7f6c1ed53f7ba25ff1ec4eb7a816
BLAKE2b-256 f781d274015b84f612464c0aa606ab2fe7476dac0b2c0dd1c5ffd7a9825d8057

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1f876221ddd2b02cdf8fcc046a2e1db995b44336821ccb64fb3313e369d0512b
MD5 8511a29efa2c7ced82c8a2f89a15b09e
BLAKE2b-256 4664ba6b707fe0e9e52ecbd7a8fb3500930759f23a6628631b3c7ae16b4dcd9a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 ef5a222e96f8eff507b05fea5e745179043c1742ff538ef7b6aea48738896728
MD5 449aa100a0a15b17b061746a751b9832
BLAKE2b-256 68b79c92b787bba3cb25f71cd950bbacf5938f7d164c3bef7b5051dadd624d50

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 271dfad3d488c07a02d04310b32344c9a8537c6512755c3743a792242ec9e783
MD5 2d81f2bcde0a3a62a3c3082a9eaff29c
BLAKE2b-256 d08a804b4d99dc517393ddf52049fe78522f69ffc00dfbc3c0271f2055a7cc95

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 972b86ab518619f7d78eb43667ac50b288de25b9f7525a6a7d5d367bcbf1720a
MD5 9abc0ecc8cf65e721cf0d1cfff030d65
BLAKE2b-256 a96540eb87cd0dab77dfe4637de63b9010b11b85581df70d66cccd95f2d76b3d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8374ea4ae9da9703627d7f5c01cbf806e7e7551bee55808235adff0d9b09dd34
MD5 36ff12d9839b64ef100b749af41d7995
BLAKE2b-256 497b0a18e699e172b883f0ed5d8784c5673c162253cfcf05b14119b0653b8bb5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.3-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e2422eb59f3e3d8d87e7ebe0a0f075f47703a90ffeb1d82647be09aa8e6f0f0b
MD5 34b423c37a4e415abf26251073a0c5cd
BLAKE2b-256 4d8138c1af8e840ee52238de1d1e04c4ff059dfb1df2f5382448cc23e7d7af5f

See more details on using hashes here.

Provenance

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

1.1.6

9 files

1.1.5

9 files

1.1.4

9 files

This release

1.1.3 This release

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