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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3musllinux: musl 1.2+ x86-64

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

Uploaded Python 3musllinux: musl 1.2+ ARM64

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

Uploaded Python 3manylinux: glibc 2.39+ riscv64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

llmfit-1.1.5-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.5-py3-none-win_arm64.whl.

File metadata

  • Download URL: llmfit-1.1.5-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.5-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 3155eca239fd57dfc7897979a61dfb26149733360a3cb3fa5d4db3aeeacfca3a
MD5 8af7d41f556870d7450722366a2124bd
BLAKE2b-256 6cc5a1bc60ca2f5c66a6a36610d88f483a8cfc8f06cf65ca4e6cd3bf2e5d8d39

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: llmfit-1.1.5-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.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a71fa894c75916a3375b72d0d4846ee12cbb6adb8f0be6705351470bca618a77
MD5 b2283a5f5d22c70ae220b16a4a7dbada
BLAKE2b-256 589722696e763d05d2d387b41771fa03b44bdcc9097b31cc2cb2bcd08347ccbe

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9484659dae554486175889e61202a62305d3f85106440196e92950bc63962d2f
MD5 29a3dae1cabbd85ff296fcbc49ddb492
BLAKE2b-256 af1484ca641857d317f706162853bc906fb7decb15a28a42f153a08722b7a72b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d29d1afff99dd6be2a8fbdb268501bd3a1a350033715a94f9b891bf85a02258
MD5 dbc6f41998006d0e97d5475d33f9adfc
BLAKE2b-256 b9b93ac09f74f1d4a1cbed367e1264a21391962ccdf22892eee05a8902074493

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-manylinux_2_39_riscv64.whl
Algorithm Hash digest
SHA256 9a2923c019ec1fb00a48c468b0a801c7ce14b731ccae86d2584c4ab5b2380ba8
MD5 c11d990cadc442437e8ff5c39912d2e8
BLAKE2b-256 350f5d9832f49426d7f7dac474fe9963aa12865b52f4f86e140b9e2337932684

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b5d52db17d0ef8600bdd762016f8a3261c6a7e47d8d8b49477b479fcc0f3d684
MD5 28005e683b9b838798d1673184f43ec4
BLAKE2b-256 7e74ac4645b0428ffd00195648d3fb041159ec21c1bb7658c03843b5a7c1faea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 ec5d804e29e114bb3529fac2a53f253c64e355e9ec2adb743393fc29a2ee9d1e
MD5 4d7b8b6bbeff3e2f9edc69f070882b72
BLAKE2b-256 c94ab04a125c78df67e5904e8435f4e48d54445d065cf6d400f7a97685357623

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 257e679c3ce2bad6437b759facfd2316c1d40d2e89e9c3fc4c7a5f074eed44ad
MD5 1d4e2bcd6b69af5efb5b24e9ce8d0937
BLAKE2b-256 40d340cf37cbc7a7b1593406c0b7de1977d18eec444201d6a02d9d84320e2e8b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for llmfit-1.1.5-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5b58e47f0ebbd4619ee56e6e572e78b1d6b78a44f175486b3208a4909d1305c0
MD5 878533d23a93a843dbde12002a6d7dff
BLAKE2b-256 cfd13a6d18209d56a59307c5ce403f348bfa651e2acfe3bcc81ba3d8b6719120

See more details on using hashes here.

Provenance

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

This release

1.1.5 This release

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