Desarrollo IAOpen Source

Rapid-MLX: El Servidor de Inferencia Local que tu Mac Merece

22 de septiembre de 2026
9 min de lectura
Panel del servidor de inferencia local Rapid-MLX en una pantalla de Mac con gráficos de velocidad, ilustración editorial
Compartir:

Tu Mac ya es una máquina de inferencia — memoria unificada, GPU que la comparte y cero dólares por token. Lo que le faltaba era un servidor que la trate como tal: respondiendo a Cursor, Claude Code, Aider y tus propios scripts a la vez, sobre el mismo wire de OpenAI, sin ninguna cuenta cloud en el medio.

En esta guía te muestro qué es Rapid-MLX y por qué ~3.800 desarrolladores le dieron estrella, cómo funciona su motor MLX-nativo en 4 pasos, el quickstart verificado que sirve Qwen en 60 segundos en localhost:8000/v1 y — igual de importante — cuándo NO deberías usarlo.

1. Qué es Rapid-MLX: Stars, Licencia y la Idea

Rapid-MLX es un servidor LLM open-source de alto rendimiento construido exclusivamente para Macs con Apple Silicon sobre el framework MLX de Apple. Un comando sirve un modelo abierto detrás de una API HTTP drop-in OpenAI-compatible (y Anthropic-compatible), así cualquier cliente que hable el wire de ChatGPT — agentes, IDEs o tu propio Python — puede apuntar a http://localhost:8000/v1 sin adaptador ni API key. Al 22 de septiembre de 2026 el repositorio en github.com/raullenchai/Rapid-MLX ronda las 3.800 estrellas y 418 forks bajo licencia Apache 2.0, con un catálogo de 261 aliases totales: 196 de texto, 11 de imagen, 10 de video y 44 de audio.

Datos del Repo (verificados Sep 2026)

  • Repositorio: github.com/raullenchai/Rapid-MLX
  • Estrellas: ~3.800 (verificá el conteo vivo en GitHub)
  • Licencia: Apache 2.0 — uso comercial permitido
  • Endpoint: http://localhost:8000/v1 (wire OpenAI) + /v1/messages (wire Anthropic)
  • Modelos: 260+ aliases: Qwen 3.5/3.6/3.8, Gemma 4, DeepSeek, GPT-OSS, GLM, visiĂłn, TTS, video

La apuesta central es honestidad de hardware: Ollama y llama.cpp son motores C++ con backend Metal, mientras Rapid-MLX corre kernels MLX puros al ancho de banda nativo de la memoria unificada, de M1 a M5. El repo declara 4.2x sobre Ollama en su tagline mientras el cuerpo documenta hasta 3x de throughput medido — tratá ambos como números reportados por el repo que podés reproducir vos mismo con el rapid-mlx benchmark run incluido, que es exactamente para lo que existe el leaderboard comunitario en rapidmlx.com.

Por qué importa en 2026

Los agentes de código se volvieron caros y charlatanes: cada Ctrl-K, cada corrida del composer y cada agente de fondo quema tokens. Un servidor local apaga ese medidor — $0 por token, tu código jamás sale de la Mac — manteniendo exactamente las mismas herramientas: Claude Code, Codex CLI, Aider, OpenCode y todo lo OpenAI-compatible siguen funcionando, solo que apuntando a localhost.

2. Arquitectura en 4 Pasos: Del Request a los Tokens

El README documenta el motor como serving MLX-nativo con continuous batching, KV cache cuantizado en vivo, prompt caching y speculative decoding. Acá va, paso a paso:

đź§ 

Paso 1 — ejecución MLX-nativa, sin llama.cpp

Kernels MLX puros con cómputo Metal — sin fallback C++, sin shim. El motor hereda paged KV cache, prefix cache y continuous batching de su linaje vLLM-MLX, así una Mac responde a Cursor, Claude Code, tus agentes y tus scripts en concurrente en lugar de encolarlos uno detrás de otro.

⚡

Paso 2 — cachés en todos lados: prompt, prefijo, KV cuantizado

Un prompt cache radix con snapshots RNN DeltaNet más un KV cache vivo cuantizado (int4/int8 en el path de continuous batching, codec TurboQuant K8V4) recorta trabajo repetido. El repo reporta 0.08s de time-to-first-token cacheado, y los prefijos compartidos entre llamadas concurrentes dejan de pagar prefill dos veces.

🔌

Paso 3 — 17 tool parsers detrás de wires estándar

Diecisiete parsers de tool calls (hermes por defecto en Qwen, parser de razonamiento qwen3 y envelopes por familia) con separación de razonamiento, expuestos en /v1/chat/completions, /v1/responses para Codex CLI y /v1/messages para el SDK de Anthropic y Claude Code. Doce CLIs de agentes más LangChain, PydanticAI y smolagents se verifican contra pesos reales cada release — cinco de ellos Tier-1, que bloquean el release si fallan.

🚀

Paso 4 — speculative decoding + conexión de agentes en un comando

Un path MTP verificado (1.43x a 128 tokens hasta 2.34x a 32K en Qwen3.8-27B, salida byte-idéntica) más speculative decoding DFlash opcional. Y rapid-mlx launch claude-code parchea tu config del agente para rutear al servidor local — Claude Code totalmente local sin editar JSON a mano.

Throughput, con honestidad

En rapidmlx.com conviven dos números: throughput agregado con 4 streams concurrentes (Qwen3.5-4B a 261 tok/s en M3 Ultra) y decode de un solo request (esa misma clase de modelo a ~37 tok/s en una M4 de 16 GB). Ambos son medianas reportadas por el repo, no reviews independientes — compará agregado con agregado y single con single, y corré rapid-mlx benchmark run en tu propia Mac antes de elegir tu modelo diario.

3. Quickstart: Sirviendo Qwen en 60 Segundos (Verificado)

Todos los comandos de abajo salen directo del README vivo y de rapidmlx.com/download — verifiqué cada uno contra el repo el 22 de septiembre de 2026. Elegí una vía de instalación y serví. La primera corrida descarga los pesos (~3 GB para el modelo inicial) con barra de progreso; después son segundos.

# Opción A — Homebrew (botella precompilada, sin tap)
brew install rapid-mlx

# Opción B — instalador guiado (detecta RAM, recomienda modelo inicial)
curl -fsSL https://rapidmlx.com/install.sh | bash

# Opción C — pip (necesita Python 3.10+; macOS trae 3.9, así que primero brew install python@3.12)
python3.12 -m pip install rapid-mlx
# Extras: pip install 'rapid-mlx[vision]'  |  pip install 'rapid-mlx[audio]'  |  pip install 'rapid-mlx[all]'
# Chateá ya mismo (por defecto qwen3.5-4b-4bit)
rapid-mlx chat

# O servilo para todas las demás apps
rapid-mlx serve qwen3.5-4b-4bit
# => serving on http://localhost:8000/v1

# Verificá el wire
curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"default","messages":[{"role":"user","content":"Say hello"}]}'
# Apuntá cualquier cliente OpenAI — sin key
from openai import OpenAI
client = OpenAI(base_url="http://localhost:8000/v1", api_key="not-needed")
print(client.chat.completions.create(
    model="default",
    messages=[{"role": "user", "content": "Say hello"}],
).choices[0].message.content)

# Claude Code / SDK de Anthropic usa el mismo host: http://localhost:8000
# (la ruta Anthropic messages vive en /v1/messages)
# Conectá tu agente de código en un comando (el servidor debe estar corriendo)
rapid-mlx launch claude-code   # parchea ~/.claude/settings.json, $0 por token
rapid-mlx launch list          # todo lo detectado en esta máquina

# Auto-diagnĂłstico cuando algo anda raro
rapid-mlx doctor               # metal, imports, CLI, carga del modelo: PASS/FAIL
rapid-mlx benchmark run qwen3.5-9b-4bit   # nĂşmeros reproducibles de TU Mac

Elegí el modelo según tu RAM con rapid-mlx recipe o rapid-mlx info <alias> — Qwen3.5/Qwen3.6 arrancan con thinking activado, así que agregá --no-think si el decode se siente lento. Un caveat honesto del propio README: Cursor rutea los requests BYOK por sus propios servidores, que no alcanzan tu localhost — Cursor necesita un túnel HTTPS público más RAPID_MLX_API_KEY, y eso deja de ser totalmente local. Claude Code, Codex CLI, Aider y OpenCode funcionan directo contra localhost.

Tip: dejá que el instalador elija tu primer modelo

El instalador guiado y la app Desktop leen el mismo catálogo por tiers de RAM, y un test de CI falla si divergen. En 16 GB elige qwen3.5-4b-4bit (~6 GB pico), en 32 GB+ qwen3.8-27b-4bit (~20 GB) — empezá ahí, medí, y recién después subí hacia los MoE 35B y el lane DeepSeek de 158B.

4. Elegí por RAM: Qué Entra en tu Mac

La memoria unificada es el techo duro — el modelo, el KV cache y macOS la comparten. Estos son los tiers y velocidades reportados por el repo (página PyPI, tier map del README y benchmarks comunitarios, septiembre 2026):

đź’»

16 GB MacBook Air/Pro → Qwen3.5-4B

rapid-mlx serve qwen3.5-4b-4bit, ~6 GB pico. Decode single-request comunitario ~37 tok/s en M4; agregado 261 tok/s en 4 streams en M3 Ultra. El daily driver para laptops.

🖥️

32 GB Mac → Qwen3.8-27B

rapid-mlx serve qwen3.8-27b-4bit, ~20 GB pico. Verificado 43.4 tok/s de decode y 330.8 tok/s de prefill a 8K de contexto en M3 Ultra, con MTP automático. Pesos abiertos clase GPT-5.6 en una máquina de escritorio.

🏢

64–96 GB Mac → MoE 35B / 122B

Qwen3.5-35B a ~83 tok/s en 64 GB; Qwen3.5-122B a ~57 tok/s en 96 GB+. Las formas MoE (pocos billones activos por token) explican por qué entran donde los densos no pueden.

🚀

128 GB+ Studio → DeepSeek V4 Flash 158B

MoE 158B-A13B a 31–56 tok/s con 1M de contexto en 128 GB+. Inteligencia de nivel frontera, soporte day-zero, todavía $0 por token y totalmente offline.

El patrón común a los cuatro: primero matcheá el alias a tu memoria unificada, segundo medí, y recordá que el decode single-request y el agregado de 4 streams son deportes distintos — el número que importa es el medido en tu workload, en tu chip.

5. Cuándo NO Usar Rapid-MLX: Límites Honestos

Me gusta Rapid-MLX, pero es un servidor solo-Mac con opiniones — tiene gate de plataforma, techo de memoria y un paso de setup. Esta es mi checklist honesta:

❌ Mejor otra cosa cuando

  • • No estás en Apple Silicon — MLX exige M1 o posterior en macOS 14+. Intel, Windows y Linux server quedan afuera; para flotas NVIDIA/CUDA usá vLLM o SGLang.
  • • Necesitás Cursor en localhost plano — el path BYOK de Cursor no alcanza tu loopback; tunelarlo a pĂşblico rompe la historia totalmente-local, asĂ­ que dejale modelos cloud.
  • • Necesitás escala gerenciada — un Studio sirve a un equipo, no un lanzamiento; tráfico multi-usuario con picos va en inferencia hosteada con autoscaling.
  • • Tu Mac tiene 8 GB — solo entran los aliases chicos (clase lfm2.5-2.6b, ~3 GB), y todo lo que exceda a swap se va a sentir roto, no lento.
  • • Necesitás SLAs reproducibles de vendor — los benchmarks comunitarios son medianas en chips y tĂ©rmicas puntuales; si tenĂ©s que prometer p99, medĂ­ tu propia flota primero.

âś… Rapid-MLX encaja genial cuando

  • • Codeás a diario con Claude Code, Codex CLI, Aider u OpenCode y querĂ©s $0 por token.
  • • Tu cĂłdigo o prompts no pueden salir de la máquina — offline, privado, sin cuenta ni facturaciĂłn.
  • • Una Mac debe servir varias apps y agentes en concurrente sobre wires OpenAI/Anthropic estándar.
  • • QuerĂ©s tool calling que realmente parsee — 17 parsers con smoke tests de agentes que bloquean releases.

Regla de oro

Dimensioná el modelo a la Mac, no al hype. Si no podés responder “cuánta memoria unificada queda libre después del modelo, el KV cache a mi largo de contexto y macOS”, corré rapid-mlx recipe y medí antes de adoptar nada más grande — el servidor más rápido es el que jamás swapea.

ConclusiĂłn

Rapid-MLX se gana honestamente sus ~3.800 estrellas: convierte a la Mac de una máquina que puede correr modelos en una que los sirve — kernels MLX-nativos, cachés en cada capa, speculative decoding y una superficie OpenAI-compatible que doce CLIs de agentes ya hablan. El catálogo por tiers de RAM más el harness de benchmarks incluido hacen que la pregunta dolorosa de “qué entra en mi máquina” se responda en dos comandos.

Instalalo con brew, serví qwen3.5-4b-4bit, apuntá un agente a localhost:8000/v1 y compará una semana de tokens locales contra tu última factura de API. Si la calidad aguanta tu workload, el servidor se paga solo el día que dejás de contar tokens.

Diego Rodriguez

Diego Rodriguez

Ingeniero Senior Full-Stack & AI

Diego tiene mas de 9 anos de experiencia construyendo aplicaciones potenciadas por IA de produccion, desde orquestacion de LLMs y pipelines RAG hasta deteccion de riesgos con ML y sistemas de trading algoritmico.

Conoce mas sobre Diego →