Find a file
Alex Jones 7b9cc973ae ci: validate community benchmark submissions on PR
Adds the Community Benchmarks workflow: any PR touching
llmfit-core/data/community/ runs scripts/validate_community_benchmarks.py,
which checks JSON schema conformance (schema.json, draft-07),
path/naming conventions (community/<slug>/<timestamp>-<hash>.json), file
size caps, and cross-field sanity the schema can't express (tps
ordering, plausible hardware bounds, submission timestamps within the
feature's lifetime). Whole-directory validation, so repo integrity is
re-checked on every touch; also runs on push to main.

Seeds the directory with the first genuine submission (Intel Arc 140V /
Core Ultra 7 258V, gemma-3 Q8 via llama-server, 3.8 tok/s) — previously
attempted in #713/#716 — which also exercises the workflow on this PR.

Closes the CI-validation follow-up named in #712.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 11:33:44 +01:00
.githooks chore: updated formatting, was broken 2026-02-20 06:09:11 +00:00
.github ci: validate community benchmark submissions on PR 2026-07-10 11:33:44 +01:00
assets docs: add real benchmark screenshot and update README headline 2026-04-27 15:44:14 +01:00
data Merge upstream main into ONNX catalog branch 2026-07-06 09:55:51 +07:00
docs feat(fit): purge test-stub catalog entries; calibrate estimates from local benchmarks 2026-07-10 11:07:42 +01:00
llmfit-core ci: validate community benchmark submissions on PR 2026-07-10 11:33:44 +01:00
llmfit-desktop fix: mark TTS models as unsupported runtime 2026-07-05 12:06:39 +02:00
llmfit-python feat(python): add riscv64 wheel build 2026-06-17 08:08:27 -04:00
llmfit-tui feat(fit): purge test-stub catalog entries; calibrate estimates from local benchmarks 2026-07-10 11:07:42 +01:00
llmfit-web Add zh-CN localization plus web planning and hardware simulation (#486) 2026-04-22 10:17:59 +01:00
scripts ci: validate community benchmark submissions on PR 2026-07-10 11:33:44 +01:00
skills/llmfit-advisor docs: brew official formula 2026-03-02 11:58:15 +07:00
.dockerignore chore: tidy up tracked image files (#505) 2026-04-25 07:59:49 +01:00
.gitattributes fix: MoE GPU-mode TPS uses full model size + expert-count-scaled overhead (#464) 2026-04-19 13:38:10 +01:00
.gitignore docs: break README sections out into docs/ guides, sympozium-style 2026-07-09 10:59:09 +01:00
.release-please-manifest.json chore(main): release 1.0.1 2026-07-09 10:30:46 +01:00
AGENTS.md chore: remove duplicated root data/ copies of catalog and benchmark cache 2026-07-02 21:49:07 +01:00
API.md feat: serve over a Unix domain socket (--unix-socket) 2026-07-02 17:41:48 +01:00
AUDIO_SUPPORT.md chore: remove duplicated root data/ copies of catalog and benchmark cache 2026-07-02 21:49:07 +01:00
Cargo.lock feat(bench): add --share to contribute benchmarks via PR without gh CLI 2026-07-10 07:43:19 +01:00
Cargo.toml chore(main): release 1.0.1 2026-07-09 10:30:46 +01:00
CHANGELOG.md chore(main): release 1.0.1 2026-07-09 10:30:46 +01:00
CNAME Update CNAME 2026-02-15 16:38:00 +00:00
CODE_OF_CONDUCT.md docs: add contributing guide and code of conduct (#562) 2026-05-19 10:39:34 +01:00
CONTRIBUTING.md chore: move schema.json to llmfit-core/data and drop root data/ references 2026-07-02 21:50:17 +01:00
Dockerfile fix(docker): drop COPY of removed root data/ directory 2026-07-03 17:16:37 +01:00
flake.lock Add flake.nix for Nix packaging 2026-03-06 10:49:34 +01:00
flake.nix flake.nix: derive version from Cargo.toml automatically 2026-03-06 11:15:07 +01:00
index.html chore: fixed the installer 2026-02-19 14:19:03 +00:00
install.sh fix: support sudo in piped install script 2026-03-03 20:56:21 +00:00
LICENSE Add MIT License to the project 2026-02-17 09:13:52 +00:00
Makefile feat: add Docker Model Runner as a runtime provider 2026-03-14 17:42:58 +00:00
MODELS.md fix: correct Llama 4 Maverick metadata (expert count, context length) (#446) 2026-04-15 20:25:09 +01:00
README.ja.md docs: mirror the 1.0 milestone banner into zh/ja READMEs 2026-07-09 10:52:32 +01:00
README.md docs: break README sections out into docs/ guides, sympozium-style 2026-07-09 10:59:09 +01:00
README.zh.md docs: mirror the 1.0 milestone banner into zh/ja READMEs 2026-07-09 10:52:32 +01:00
release-please-config.json fix: bump internal llmfit-core version requirement to 1.0.0 2026-07-09 10:30:21 +01:00
version.txt chore(main): release 1.0.1 2026-07-09 10:30:46 +01:00

llmfit

llmfit icon

English · 中文 · 日本語

CI Crates.io License Signed with SignPath

🎉 llmfit 1.0 is here — the release where the numbers became verifiable. Your machine's RAM bandwidth is now measured, not assumed. Real community benchmarks (marked ✓) take priority over formula estimates when we have data for your GPU. And every estimate ships its inputs — llmfit info shows exactly what the number assumes and how to verify it yourself. Read the full story →

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