AlexsJones/llmfit
55.2
Adequate · 27 September 2026
58.2k
lines of production code
Rust
with Python, JavaScript
5
measurements over time
What this system is
llmfit is a local LLM compatibility analysis tool that detects system hardware specifications and estimates model fit metrics such as memory requirements and performance. It provides a multi-interface experience through a terminal UI, a Tauri-based desktop application, and an embedded web dashboard, all of which allow users to browse a curated model catalog and download models via Ollama. The system relies on embedded community benchmarks and hardware profiles to perform offline analysis, ensuring accurate planning without requiring network fetches.
Features
Add embedded React web dashboard with Vite configuration
The llmfit-web directory now contains the source code for a React-based web dashboard, including the entry point (index.html), Vite configuration (vite.config.js), and documentation (README.md). The configuration sets up a development server on port 5173 and a preview server on port 8787, both proxying API requests to the backend at 127.0.0.1:8787. It also includes security measures like DNS rebinding protection via allowed hosts and test environment setup using jsdom.
llmfit-web · high confidence
Embedded community benchmarks and hardware profiles
The application now bundles community-submitted benchmark results and hardware profiles directly into the binary at build time. This allows users to access aggregated community data and hardware-specific configurations without requiring network fetches or separate CI steps, ensuring that merged contributions are immediately available to all users in the next release.
llmfit-core · high confidence
Initial Tauri desktop application shell with system and model fit detection
The desktop application entry point is established using Tauri, introducing a new main module that exposes core analysis capabilities to the UI layer. This includes commands to detect local hardware specifications (CPU, RAM, GPU details) and to retrieve a ranked list of compatible models based on system constraints, providing detailed fit metrics such as memory requirements, estimated performance, and supported inference runtimes. Additionally, the app integrates with Ollama to allow users to pull models directly from the desktop interface, with commands to start downloads and poll their real-time progress status.
llmfit-desktop/src · high confidence
Initial project scaffolding and documentation
This change establishes the foundational structure of the llmfit project. It introduces the MIT License, a Code of Conduct, and a Contributing guide to standardize community interaction. The repository is configured with a Makefile for build/test workflows, a Dockerfile for containerized deployment, and a .dockerignore to optimize build contexts. Documentation is expanded with a comprehensive API guide (API.md), a model catalog (MODELS.md), and localized READMEs for Chinese and Japanese speakers. Additionally, release automation is initialized via .release-please-manifest.json, and repository hygiene is improved with .gitattributes and a CNAME for web hosting.
(repo-wide) · high confidence
Introduce Tauri-based desktop application with WebView2 bootstrapper
The llmfit-desktop location now implements a native desktop application using the Tauri framework, replacing previous packaging methods. This change introduces a build configuration (build.rs) and a Tauri configuration file (tauri.conf.json) that defines the app as 'llmfit' (version 0.4.8) with a 1200x800 resizable window. A key user-facing improvement is the configuration for Windows to download the WebView2 bootstrapper, ensuring the app can run on systems without WebView2 pre-installed. The app also enforces a strict Content Security Policy (CSP) for security.
llmfit-desktop · high confidence
Introduce desktop UI with system specs, model compatibility analysis, and Chinese localization
The desktop application now includes a dedicated user interface that displays real-time system specifications (CPU, RAM, GPU, and unified memory) and provides a detailed compatibility analysis for local LLMs. Users can view fit levels, estimated performance, and runtime modes in a sortable table, and access a detailed modal for each model that includes memory usage visualization and installation status. A new language selector allows switching between English and Simplified Chinese, and the interface supports downloading models directly via Ollama when available.
llmfit-desktop/ui · high confidence
New TUI application with embedded web dashboard and theme support
The llmfit-tui package introduces a new terminal user interface and an embedded web dashboard. The TUI now supports 10 color themes (including Catppuccin variants) which are persisted to the user's config directory. The embedded web dashboard is built from the llmfit-web frontend assets during compilation, with a fallback placeholder page if assets are missing. The application also includes a new download history feature that tracks recent model downloads, and a filter configuration system that persists user filter preferences across sessions.
llmfit-tui/src · high confidence
New application icon and demo recording added to assets
The assets directory now includes a new SVG icon (\assets/icon.svg\) featuring a chip and neural network design, as well as a new demo recording script (\assets/demo.tape\) that defines a reproducible sequence for generating a README GIF. These additions provide visual branding and a standardized demonstration of the tool's interface for documentation purposes.
assets · high confidence
New maintenance and validation scripts for model data and CI
This change introduces a suite of new scripts in the \scripts/\ directory to support model database maintenance, data validation, and CI integration. \scrape\_hf\_models.py\ is updated to support parallel fetching (\--threads\), pagination, and rate-limit handling for Hugging Face. New scripts include \scrape\_benchmarks.py\ to cache hardware benchmark data, \scrape\_docker\_models.py\ to map Hugging Face models to Docker Model Runner tags, and \update\_models.sh\ to orchestrate scraping, JSON validation, and binary rebuilding. Validation scripts \validate\_community\_benchmarks.py\ and \validate\_generation\_scoring.py\ enforce schema and scoring logic for community submissions and model quality. \verify\_models.py\ checks the availability of Hugging Face models and Ollama tags. Finally, \test\_api.py\ provides local API validation for the \llmfit serve\ endpoint, and \install-openclaw-skill.sh\ automates the installation of the \llmfit-advisor\ skill for OpenClaw.
scripts · high confidence
Removals
Removal of legacy CLI and TUI display logic
The \src\ directory has removed the previous implementation of the command-line interface and terminal user interface, including the hardware detection, model fit analysis, and display modules. This change eliminates the old table-based output and interactive TUI components, indicating a shift in how the application presents system specifications and model compatibility information to the user.
src · high confidence
Behavioural changes
Enforce Rust code formatting on push
A new pre-push git hook has been added to automatically check Rust code formatting before changes are pushed to the remote repository. The hook runs \cargo fmt --check\ to verify that the codebase adheres to the standard Rust formatting style; if formatting issues are detected, the push is blocked with an error message instructing the user to run \cargo fmt\ to fix them.
.githooks · high confidence
Python package structure and build system reorganized
The llmfit-python package has been restructured to use a custom Hatchling build hook that injects the pre-compiled Rust binary into the wheel, ensuring the CLI is correctly installed and version-matched. This change introduces a new Makefile for development tasks (formatting, linting, testing) and adds a uv.lock file to manage Python dependencies, while also adding a symlink for the LICENSE file and a test suite to verify binary availability and versioning.
llmfit-python · high confidence
Web UI restructured with new components, state management, and comparison view
The web interface has been refactored from a single-page component into a modular architecture using React Contexts (Filter, Model, I18n) and custom hooks. This change introduces a side-by-side model comparison view (up to 5 models), a hardware simulation panel for estimating fit on different system specs, and a detailed model diagnostics panel with plan estimation. The UI now supports 10 color themes and Chinese (zh-CN) localization, while the API layer has been updated to accept runtime and model parameters for plan estimates and simulation data.
llmfit-web/src · high confidence
Fixes
283 commits (143 fixes) fixing llmfit-core/src
A fix in llmfit-core/src — 283 commits (143 fixs), 18 files.
llmfit-core/src · medium confidence · unverified
Test coverage
Added CLI integration smoke tests for hardware profiles, storage planning, and macOS GPU detection; Added Docker Compose integration tests for the application stack; Added nvidia-smi parser test fixtures; Added sysfs test fixtures for GPU VRAM and vendor scenarios; Added validation tests for estimator accuracy, hardware profiles, ONNX catalog, and model schema.
Dependencies
Project restructured into a multi-crate workspace with new desktop and web interfaces
The repository has been reorganized from a single binary into a Rust workspace containing \llmfit-core\ (shared library), \llmfit-tui\ (terminal interface), and \llmfit-desktop\ (Tauri-based macOS app), alongside a new \llmfit-web\ frontend. This structural change introduces several dependency updates: the Rust codebase now uses \ureq\ 3 (upgraded from \ureq\ 2), \clap\ 4.6, \ratatui\ 0.30, and \sysinfo\ 0.39, while the web interface adds React 18 and Vite 5. The core library also adds \objc2-metal\ for macOS GPU memory detection and \schemars\ for JSON schema generation.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 43 → 55 (+12.1)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 58 → 55 (-2.5)
- Architecture 97 → 100 (+3.2)
- Maturity 59 → 64 (+5.0)
- Readiness 30 → 85 (+54.4)
- Security 44 → 60 (+16.0)
- Accessibility 47 (new)
Resolved (85)
- Coverage not measured — test suite did not build
- Critical CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- Dimension evaluation failed
- High CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- High CVE: [GHSA redacted] (Cargo.lock)
- High CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- High CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- High CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- High IaC: DS-0029 (Dockerfile)
- High IaC: DS-0029 (Dockerfile)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 65 more
New (407)
- App::apply_filters (cognitive 47) (llmfit-tui/src/tui_app.rs)
- App::apply_filters (cyclomatic 46) (llmfit-tui/src/tui_app.rs)
- App::available_download_providers (cognitive 16) (llmfit-tui/src/tui_app.rs)
- App::available_download_providers (cyclomatic 17) (llmfit-tui/src/tui_app.rs)
- App::load_bench_cache (cognitive 16) (llmfit-tui/src/tui_app.rs)
- App::merge_local_bench_rows (cognitive 17) (llmfit-tui/src/tui_app.rs)
- App::plan_input (cognitive 16) (llmfit-tui/src/tui_app.rs)
- App::tick_bench (cognitive 19) (llmfit-tui/src/tui_app.rs)
- App::with_specs_context_and_config (cognitive 21) (llmfit-tui/src/tui_app.rs)
- App::with_specs_context_and_config (cyclomatic 21) (llmfit-tui/src/tui_app.rs)
- Capability::infer (cyclomatic 16) (llmfit-core/src/models.rs)
- ClassTooLong: App (llmfit-tui/src/tui_app.rs)
- ClassTooLong: Commands (llmfit-tui/src/main.rs)
- ClassTooLong: DetailPanel (llmfit-web/src/components/DetailPanel.jsx)
- ClassTooLong: SystemSpecs (llmfit-core/src/hardware.rs)
- Coverage not measured — JavaScript/TypeScript suite
- Critical CVE: [GHSA redacted] (llmfit-web/package-lock.json)
- Dependency hygiene PARTLY measured — Cargo dependencies read, dependency currency not (crates.io unreachable)
- DetailPanel.DetailPanel (cognitive 50) (llmfit-web/src/components/DetailPanel.jsx)
- DetailPanel.DetailPanel (cyclomatic 45) (llmfit-web/src/components/DetailPanel.jsx)
- …and 387 more
Changes since last survey
- 168 commits — 118 feature/other, 50 fixes
By area
- llmfit-core/data — 59 commits
- llmfit-core/src — 43 commits
- (root) — 36 commits
- .github/workflows — 12 commits
- llmfit-core/tests — 9 commits
- llmfit-tui/src — 5 commits
- scripts/scrape_hf_models.py — 3 commits
- .github/dependabot.yml — 1 commit
Notable commits
- fix: Fix Score sort direction floating unrunnable models to the top (#991)
- fix: fix(bench): error when the requested model is not available (#1041)
- fix: fix(bench): identify Ferrum and vLLM by endpoint owner (#994)
- fix: fix(bench): ignore implausible tok/s from degenerate Ollama timings (#1042)
- fix: fix(bench): normalize latency formatting (#1001)
- fix: fix(bench): stop wall timer after body read in OpenAI and Ollama paths (#1037)
- fix: fix(cli): don't auto-spawn dashboard for read-only subcommands (#838)
- fix: fix(cli): return JSON errors for missing models (#966)
- fix: fix(docker): build each platform natively instead of cross-compiling under QEMU (#996)
- fix: fix(fit): make ranking deterministic across runs (#1066)
- fix: fix(fit): size and price MXFP4-native models at MXFP4 (#1059)
- fix: fix(fit): stop flagging pre-quantized models that fit as insufficient (#898)
- fix: fix(hardware): recognize A-series Apple Silicon unified memory (#1044)
- fix: fix(hardware): recover BIOS UMA carveout on Linux APUs and drop legacy Intel iGPUs (#964) (#995)
- fix: fix(hardware): skip legacy Intel HD GPUs (#841)
- fix: fix(hardware): stop mobile GPUs inheriting desktop specs (#919) (#922)
- fix: fix(models): keep architecture metadata when config.json fetch misses (#963)
- fix: fix(ollama): map the gemma3 family sizes to their catalog ids (#950)
- fix: fix(ollama): stop a size-less family tag claiming a much larger model (#899)
- fix: fix(ollama): stop one sized install marking a whole model family installed (#863)
- …and 148 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
AlexsJones/llmfit was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 27 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7f47fca32c27230ccfbb012994a0d0bff03bc283 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-7c1cb6328e11.