llmfit

AlexsJones / llmfit — マシンの RAM・CPU・GPU に合うローカル LLM を推奨するツール

1 — 概要

ハードウェアを検出し、モデルごとに品質・速度・適合度・コンテキストの合成スコアを付与。最適な量子化・推定 tok/s・実行モード(GPU / CPU+GPU / CPU)を返す。デフォルトは対話式 TUI。コミュニティベンチマーク(b)やダウンロードマネージャ(D)、ハードウェアシミュレーション(S)など、README に定義されたショートカットで周辺機能にアクセスする。

0.9.22
Workspace 版(公開時点)
3
Cargo workspace メンバー
7+
用途フィルタ(use-case)
MIT
ライセンス
出典: 本ページの事実は GitHub: AlexsJones/llmfit の README・API ドキュメント・Cargo ワークスペース定義に基づく。数値やフラグはリリースで変わり得るため、運用前にリポジトリの最新版を確認すること。
2 — リポジトリ構成

ルートの Cargo.toml は llmfit-core・llmfit-tui・llmfit-desktop をメンバーとするワークスペース。default-members は core と tui。デスクトップは Tauri。Python バインディングは llmfit-python/、ブラウザ UI は llmfit-web/(Vite)。モデルメタやスクリプトは data/ と scripts/ に分かれる。

パス役割
llmfit-core/適合計算・モデルカタログ・共有ロジック
llmfit-tui/既定エントリ。Ratatui ベースの対話 UI
llmfit-desktop/Tauri + 埋め込み UI のネイティブアプリ
llmfit-web/llmfit serve 向けフロント資産
llmfit-python/PyPI 向けパッケージ(uv / pip で配布)
skills/llmfit-advisor/エージェント向け SKILL(OpenClaw メタ付き)
3 — 利用形態
入口用途
llmfit(引数なし)ローカルで一覧・絞り込み・比較
サブコマンド / フラグrecommend、--json、用途・最小適合度などのフィルタ
llmfit serveHTTP API と同一オリジンの Web ダッシュボード(既定ポート例: 8787)
Docker イメージrecommend 等の JSON をパイプ処理向けに取得
Python / エージェントllmfit バイナリを呼び出し、JSON を解釈してプロバイダ設定へ写す
4 — TUI の要点

Vim 風のモード(Normal / Visual / Select)で操作が分岐。README のキーバインド表を要約すると、検索は /、適合フィルタは f、ソート列は s、コミュニティベンチマークは b、詳細は Enter、終了は q。Plan モード(p)では「このモデルに必要なVRAMや文脈長は?」を逆算する。

STEP 1
ハードウェア検出
起動時に CPU・RAM・GPU(NVIDIA / AMD / Apple など)を読み、バックエンド名と利用可能メモリを表示。
STEP 2
スコアで並べ替え
合成スコア・推定 tok/s・量子化・メモリ使用率・用途カテゴリを一覧し、フィルタとソートで候補を絞る。
STEP 3
取得と比較
d で取得、m / c でマルチ比較。Visual モードで範囲選択し、属性横並びの表で読む。
STEP 4
JSON へ切り替え
スクリプトや CI では llmfit recommend --json 等で同じコア結果を機械可読に渡す。
5 — REST とダッシュボード

クラスタの各ノードで推奨モデルを HTTP で問い合わせ、外部のスケジューラや UI で集約する想定。GET /health、GET /api/v1/system、推奨系エンドポイントでノードのハードウェアとランキングを取得する。ダッシュボード用アセットは llmfit-web でビルドしてからバイナリに埋め込む手順が API ドキュメントに記載されている。

llmfit serve --port 8787
# 例: メモリ上書きで応答を検証
llmfit --memory 24G --ram 64G --cpu-cores 16 --max-context 8192 serve --port 8787
6 — エージェント連携

リポジトリ同梱の skills/llmfit-advisor/SKILL.md は、ローカルモデル選定をエージェントに委ねる手順を定義する。トリガー例: 「この GPU で動くモデルは?」「コーディング向けにローカルで何を選ぶ?」。推奨フローは (1) llmfit --json system で環境確認、(2) llmfit recommend --json --limit N で上位候補、(3) Ollama タグや vLLM / LM Studio の識別子へマッピング、(4) 設定ファイル(例: OpenClaw の openclaw.json)へ反映、の四段。

コマンド例返却の用途
llmfit --json systemCPU 名、コア数、RAM、GPU 名、VRAM、unified memory フラグ
llmfit recommend --json --limit 5上位5件のスコア・fit_level・best_quant・estimated_tps
llmfit recommend --json --use-case coding --limit 3用途別に絞った推奨
llmfit recommend --json --min-fit goodmarginal 以下を除外して安定運用向けに絞る
適合度: perfect / good / marginal / TooTight。スキルでは TooTight をユーザーに勧めない、と明記されている。
7 — インストール

パッケージマネージャ(Scoop / Homebrew / MacPorts)、install.sh、uv tool install、コンテナ、ソースからの cargo build --release。エージェントスキル側では Homebrew と cargo の両方をインストール候補として列挙している。

brew install llmfit
# または
uv tool install -U llmfit
uvx llmfit