llmfit

Ferramenta de terminal escrita em Rust que detecta o hardware do sistema e indica quais modelos LLM rodam bem localmente. Avalia RAM, CPU e GPU, e classifica 497 modelos de 133 provedores com base em qualidade, velocidade, compatibilidade de memória e janela de contexto.


Instalação

macOS / Linux

# Via script
curl -fsSL https://llmfit.axjns.dev/install.sh | sh
 
# Via Homebrew
brew tap AlexsJones/llmfit
brew install llmfit

Cargo (multiplataforma)

cargo install llmfit

A partir do código-fonte

git clone https://github.com/AlexsJones/llmfit.git
cd llmfit
cargo build --release

Uso

TUI (padrão)

llmfit

Interface interativa no terminal. Atalhos principais:

TeclaAção
/ ou j/kNavegar modelos
/Busca por nome, provedor, params ou uso
fFiltrar por fit: All, Runnable, Perfect, Good, Marginal
sOrdenar por coluna: Score, Params, Mem%, Ctx, Date
dBaixar modelo via Ollama
pFiltro por provedor
tTrocar tema de cores
qSair

CLI

llmfit --cli                          # Tabela de todos os modelos
llmfit fit --perfect -n 5            # Top 5 modelos com fit perfeito
llmfit system                        # Specs do hardware detectado
llmfit search "llama 8b"             # Busca por nome/provedor/tamanho
llmfit info "Mistral-7B"             # Detalhes de um modelo
llmfit recommend --json --limit 5    # Top 5 recomendações em JSON
llmfit recommend --json --use-case coding --limit 3

Overrides úteis

# Forçar VRAM manualmente (quando autodetecção falha)
llmfit --memory=24G --cli
 
# Limitar contexto para estimativa de memória
llmfit --max-context 4096 --cli
 
# Hardware como JSON
llmfit --json system

Como funciona

1. Detecção de hardware

  • RAM e CPU via sysinfo
  • NVIDIA: nvidia-smi (multi-GPU, agrega VRAM)
  • AMD: rocm-smi
  • Intel Arc: sysfs / lspci
  • Apple Silicon: system_profiler (VRAM = RAM unificada)

2. Base de modelos

  • 497 modelos do HuggingFace, embutidos no binário em data/hf_models.json
  • Suporte a arquiteturas MoE (Mixtral, DeepSeek): estima apenas os experts ativos por token, reduzindo VRAM necessária significativamente

3. Quantização dinâmica

Testa de Q8_0 (melhor qualidade) até Q2_K (mais comprimido), escolhendo a melhor que cabe na memória disponível.

4. Score multidimensional (0–100 cada)

DimensãoO que mede
QualityParams, reputação do modelo, penalidade de quantização
SpeedTokens/s estimados por backend e quantização
FitEficiência de uso de memória (ideal: 50–80%)
ContextTamanho da janela de contexto vs. caso de uso

Pesos variam por categoria: Chat prioriza Speed (0.35); Reasoning prioriza Quality (0.55).

5. Modos de execução

ModoDescrição
GPUModelo cabe na VRAM — inferência rápida
MoEExperts ativos na VRAM, inativos na RAM
CPU+GPUVRAM insuficiente, spill para RAM com offload parcial
CPUSem GPU, tudo na RAM do sistema

6. Níveis de fit

FitCondição
PerfectMemória recomendada disponível na GPU
GoodCabe com margem (MoE offload ou CPU+GPU)
MarginalFit apertado ou CPU-only
Too TightSem memória suficiente

Integração com Ollama

Detecta automaticamente o Ollama em http://localhost:11434. Modelos instalados aparecem com na coluna Inst.

# Ollama remoto
OLLAMA_HOST="http://192.168.1.100:11434" llmfit
  • d: baixa modelo selecionado via POST /api/pull
  • i: ordena modelos instalados primeiro
  • r: atualiza lista de instalados

Estrutura do projeto

src/
  main.rs        # Entrypoint, parsing CLI, launch TUI
  hardware.rs    # Detecção de RAM/CPU/GPU
  models.rs      # Base de modelos e quantização
  fit.rs         # Scoring multidimensional
  providers.rs   # Integração Ollama
  tui_app.rs     # Estado da TUI
  tui_ui.rs      # Renderização (ratatui)
data/
  hf_models.json # Base de modelos
scripts/
  scrape_hf_models.py  # Scraper da API HuggingFace
  update_models.sh     # Atualização automatizada da base

Referências