LM Studio, Ollama o llama.cpp: qué corre de verdad en tu máquina

Tu runtime no decide qué modelo puedes correr: lo decide tu presupuesto de memoria. LM Studio, Ollama y llama.cpp te dejan arrancar un modelo que después va a arrastrarse. llmfit es un solo comando de terminal que lee tu RAM, tu CPU y tu GPU reales y ordena todos los modelos según lo que de verdad corre en tu máquina, en LM Studio, Ollama, llama.cpp, MLX y Docker Model Runner a la vez. Está escrito en Rust, tiene licencia MIT y ronda las 36.000 estrellas en GitHub.

Lo interesante no es el ranking. Es que la herramienta se niega a darte un número sin decirte de dónde salió ese número.

¿Por qué elegir runtime no responde la pregunta?

Casi todos los consejos sobre “qué modelo local correr” empiezan en el lugar equivocado: preguntan qué runtime prefieres. Pero LM Studio, Ollama y llama.cpp cargan los mismos pesos cuantizados en la misma memoria finita. Lo que decide si un modelo de 14B es usable en tu laptop es cuánta memoria necesitan los pesos más la caché KV en el contexto que realmente quieres usar — y esa aritmética es idéntica sea cual sea el runtime que levantes.

llmfit puntúa cada modelo en cuatro dimensiones en vez de una: ajuste de memoria, velocidad estimada, calidad y contexto. Un modelo puede pasar el filtro de memoria y aun así ser la elección equivocada, porque solo entra con un contexto tan corto que no puedes pegarle un archivo. Separar los ejes es lo que hace que la salida valga la pena leerla: “entra” y “es usable” son afirmaciones distintas.

La velocidad es el eje que normalmente se despacha con la mano. Aquí las estimaciones salen de un modelo de ancho de banda de memoria apoyado en muestreo del runtime y en mediciones reales de la comunidad, y —esta es la parte que importa— cada estimación viene con sus insumos. llmfit info "<modelo>" te muestra el análisis de ajuste, la base de la estimación y los comandos para verificarla tú mismo.

Si te interesa hasta dónde se puede estirar una máquina modesta, en yoDEV ya cubrimos cómo Colibri corre un modelo de 744B parámetros en una laptop de 32GB sin GPU. llmfit es la herramienta que te dice de antemano si tu caso se parece a ese.

¿LM Studio o Ollama? Qué encuentra llmfit en cada runtime

Aquí la comparación entre runtimes deja de ser abstracta. llmfit no te pregunta cuál usas: lo busca.

  • Ollama — consulta GET /api/tags al arrancar para inventariar lo que ya tienes instalado y marca esos modelos con un check verde. Las descargas van por POST /api/pull.
  • LM Studio — consulta GET /v1/models en el endpoint por defecto; las descargas usan POST /api/v1/models/download, con progreso rastreado por ID de trabajo.
  • llama.cpp — se detecta encontrando llama-cli o llama-server en tu PATH. Los modelos se mapean a repositorios GGUF en Hugging Face, con caché local en ~/.cache/llmfit/models.
  • Docker Model Runner — consulta GET /engines, con nomenclatura estilo Ollama ai/<tag>.
  • MLX — Apple Silicon, contra la caché de modelos de mlx-community.

Cuando más de un runtime puede servir el mismo modelo, presiona d en la TUI para elegir entre ellos. La versión v1.1.10 (17 de agosto de 2026) sumó además el descubrimiento de RamaLama.

Los runtimes que corren en otra máquina se conectan por variables de entorno:

OLLAMA_HOST="http://192.168.1.100:11434" llmfit
DOCKER_MODEL_RUNNER_HOST="http://192.168.1.100:12434" llmfit
LMSTUDIO_HOST="http://192.168.1.100:1234" llmfit

La autenticación de la API de LM Studio usa LMSTUDIO_API_KEY.

¿Cómo se instala llmfit?

Elige la línea que corresponda a tu máquina:

scoop install llmfit                                    # Windows
brew install llmfit                                     # macOS/Linux, homebrew-core
port install llmfit                                     # MacPorts
curl -fsSL https://llmfit.axjns.dev/install.sh | sh     # agrega -s -- --local para evitar sudo
uvx llmfit                                              # ejecutar sin instalar
docker run --rm -it ghcr.io/alexsjones/llmfit --tui

Ejecutar llmfit sin argumentos abre la TUI: tu hardware arriba y todos los modelos ordenados debajo. / busca, j/k navegan, d descarga, D abre el gestor de descargas y r refresca después de que levantes un servidor.

¿Los números son estimados o medidos?

Todos los números empiezan siendo una estimación. Puedes reemplazarlos por una medición.

Levanta un modelo en cualquier runtime detectado y presiona b en la TUI: llmfit ejecuta tres pasadas de inferencia reales contra el servidor que está corriendo y mide tokens por segundo y tiempo hasta el primer token en tu hardware. Los resultados se guardan primero en local. Si activas el compartir con Space o s, la herramienta hace fork del repositorio, commitea tu resultado y abre un pull request mediante el device flow de GitHub — y las contribuciones fusionadas viajan en releases posteriores, reemplazando estimaciones por datos medidos por la comunidad para todo el que tenga hardware parecido.

Ese ciclo es la razón por la que la columna de velocidad vale algo. Los números de benchmark autorreportados suelen ser un fabricante hablándote de su propio producto; aquí son máquinas de otras personas, atribuidas, con el modelo de estimación visible al lado.

¿Cómo usar llmfit desde un script?

Para quien quiera conectar esto a un agente o a un paso de aprovisionamiento, la CLI es la interfaz real:

llmfit fit --perfect -n 5                    # solo ajustes perfectos, top 5
llmfit recommend --json --use-case coding --limit 3
llmfit recommend --force-runtime llamacpp
llmfit plan "Qwen/Qwen3-4B-MLX-4bit" --context 8192 --target-tps 25 --json
llmfit doctor                                # reporte de detección de hardware

plan es el subcomando subvalorado: responde “¿puedo correr este modelo concreto con este contexto concreto y alcanzar esta tasa de tokens?”, y su JSON incluye los deltas de upgrade, es decir qué tendrías que cambiar para que funcione.

También puedes describir una máquina que todavía no tienes, lo que la convierte en una herramienta de compra tanto como de diagnóstico:

llmfit --memory=24G --ram=64G --cpu-cores=8 fit

Y hay una API REST si la quieres residente:

llmfit serve --host 0.0.0.0 --port 8787
curl "http://localhost:8787/api/v1/models/top?limit=5&min_fit=good&use_case=coding"

¿Qué no hace llmfit?

Ordena modelos; no ejecuta inferencia. Sigues necesitando un runtime. La dimensión de calidad es un criterio codificado por los mantenedores, no un benchmark que corriste tú, así que trátala como filtro inicial y no como veredicto. Y la lista de proveedores crece release a release: al momento de publicar esta nota cubre los cinco runtimes documentados arriba más el descubrimiento de RamaLama, así que revisa el repositorio si falta el tuyo.

El resumen honesto: la discusión entre LM Studio y Ollama importa mucho menos de lo que se cree, y llmfit es la forma más rápida de comprobarlo en tu propio hardware, antes de gastar cuarenta gigabytes en descubrirlo.