oMLX: LLM-инференс сервер для Apple Silicon с SSD-кешем и управлением из меню macOS

oMLX — это LLM-инференс сервер, оптимизированный для Mac: с continuous batching и многоуровневым KV-кешированием, управляемый прямо из меню macOS. Проект выложен на GitHub под лицензией Apache 2.0 и полностью бесплатен.

«Every LLM server I tried made me choose between convenience and control» — автор проекта о причинах его создания.

Что это и для кого

oMLX — это локальный LLM-инференс сервер, специально разработанный для Apple Silicon (M1/M2/M3/M4), достигающий высокой производительности через continuous batching и многоуровневое KV-кеширование.

Уникальная особенность проекта — нативное приложение в строке меню macOS, позволяющее удобно управлять сервисами, следить за статусом моделей и скачивать новые модели без открытия терминала.

Целевая аудитория:

  • Разработчики на Mac с Apple Silicon, которым нужен локальный LLM-бэкенд для агентских инструментов (Claude Code, Cursor, OpenClaw)
  • AI-инженеры, работающие с длинными контекстами и мультимодальными моделями
  • Privacy-ориентированные пользователи, не желающие отправлять данные в облако
  • Энтузиасты, кому важна простота управления без постоянного использования терминала
ℹ Системные требования
Для работы необходимы: Apple Silicon (M1 или новее), macOS 15+ (Sequoia), Python 3.10+. Минимум 16 ГБ RAM, рекомендуется 64 ГБ+ для комфортной работы с крупными моделями.

Ключевые возможности

1. Двухуровневый KV-кеш (RAM + SSD)

Ключевая инновация oMLX — двухуровневая система KV-кеша: горячий кеш в RAM и холодный на SSD. Когда горячий кеш переполняется, блоки вытесняются на SSD в формате safetensors. При следующем запросе с совпадающим префиксом они восстанавливаются с диска, а не пересчитываются с нуля — и это работает даже после перезагрузки сервера.

Ключевая функция — paged SSD caching: блоки KV-кеша сохраняются на диск, и при повторном появлении префикса восстанавливаются мгновенно. Пользователи сообщают о снижении TTFT с 30–90 секунд до 1–3 секунд на длинных контекстах.

2. Continuous Batching

Continuous batching — это продвинутый механизм планирования, позволяющий серверу обрабатывать несколько запросов одновременно. В традиционном статическом батчинге система ждёт завершения самой медленной последовательности. Continuous batching позволяет вставлять новые запросы сразу после генерации токенов, существенно повышая пропускную способность.

Достигается до 4.14× ускорения генерации при 8-кратной конкурентности.

3. Поддержка разных типов моделей

Поддерживаются текстовые LLM, мультимодальные модели (VLM), OCR-модели, эмбеддинги и реранкеры на Apple Silicon.

VLM работают с тем же стеком continuous batching и tiered KV cache, что и текстовые LLM. Поддерживается multi-image чат, входные данные в форматах base64/URL/файл и вызов инструментов с визуальным контекстом. OCR-модели (DeepSeek-OCR, DOTS-OCR, GLM-OCR) автоматически определяются с оптимизированными промптами.

4. Нативное приложение для меню macOS

Нативное приложение на PyObjC (не Electron): запуск, остановка и мониторинг сервера без открытия терминала. Включает сохраняющуюся статистику (переживает перезапуски), автоматический перезапуск при сбоях и автообновление прямо в приложении.

5. Мультимодельное обслуживание

Мультимодельная сервировка позволяет загрузить LLM, модели эмбеддингов и реранкеры в рамках одного сервера. Наименее используемые модели автоматически вытесняются при нехватке памяти. Часто используемые модели можно закрепить в памяти.

6. OpenAI и Anthropic API совместимость

Сервер является дроп-ин заменой для OpenAI и Anthropic API. Совместим с Claude Code, OpenClaw, Cursor и любым OpenAI-совместимым клиентом. Есть нативный /v1/messages эндпоинт Anthropic.

7. Web-панель администратора

Web-интерфейс по адресу /admin для мониторинга в реальном времени, управления моделями, чата, бенчмарков и настроек для каждой модели.

Поиск и загрузка MLX-моделей с HuggingFace прямо из дашборда администратора. Можно просмотреть карточки моделей, проверить размеры файлов и скачать в один клик.

8. Интеграция с MCP и кодовыми агентами

Настройка OpenClaw, OpenCode, Codex, Copilot и Pi прямо из дашборда администратора в один клик. Ручное редактирование конфигов не требуется.

💡 Совет по установке
Самый простой способ установки — скачать .dmg из раздела Releases, перетащить в Applications и запустить. Приложение включает автообновление. Для работы в терминале используйте Homebrew: brew tap jundot/omlx && brew install omlx

Архитектура


graph TD
    A[macOS Menu Bar App] --> B[FastAPI Server]
    B --> C[EnginePool]
    C --> D[BatchedEngine — LLM]
    C --> E[VLMEngine — VLM]
    C --> F[EmbeddingEngine]
    C --> G[RerankerEngine]
    D --> H[Scheduler / FCFS]
    H --> I[mlx-lm BatchGenerator]
    I --> J[Cache Stack]
    J --> K[Hot Cache — RAM]
    J --> L[Cold Cache — SSD safetensors]
    B --> M[/admin Web UI]
    B --> N[OpenAI / Anthropic API]

Примеры использования CLI

Запуск с базовыми настройками:

# Запуск сервера с каталогом моделей
omlx serve --model-dir ~/models

# Включение SSD-кеша
omlx serve --model-dir ~/models --paged-ssd-cache-dir ~/.omlx/cache

# Лимит памяти и конкурентности
omlx serve --model-dir ~/models --max-model-memory 32GB --max-concurrent-requests 16

# С поддержкой MCP
omlx serve --model-dir ~/models --mcp-config mcp.json

# Запуск как сервис через Homebrew
brew services start omlx

Подключение клиента (пример на Python):

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="your-secret-key"  # или любая строка, если ключ не задан
)

response = client.chat.completions.create(
    model="Qwen3-Coder-Next-8bit",
    messages=[{"role": "user", "content": "Напиши функцию на Python для бинарного поиска"}]
)
print(response.choices[0].message.content)

Цены и лицензия

oMLX — полностью open-source проект под лицензией Apache 2.0. Это означает:

  • Бесплатно для личного и коммерческого использования
  • Нет подписок и платных планов
  • Код доступен на GitHub и может быть изменён/форкнут

Единственная «стоимость» — это железо: необходим Apple Silicon (M1 или новее) с macOS 15+. 16 ГБ RAM — минимум, но 64 ГБ+ рекомендуется для комфортной работы с крупными моделями.

⚠ Важно
оMLX работает только на Apple Silicon (M1/M2/M3/M4) под macOS 15 Sequoia и выше. Intel Mac, Windows и Linux не поддерживаются.

Плюсы и минусы

✅ Плюсы❌ Минусы
Двухуровневый KV-кеш выживает после перезапуска сервераТолько Apple Silicon + macOS 15+
TTFT на длинных контекстах снижается с 30–90 с до 1–3 сТребует Python 3.10+ и venvstacks для разработки
Нативный PyObjC-апп (не Electron) в меню macOSMLX-формат: меньше моделей, чем в GGUF-экосистеме
Совместимость с OpenAI и Anthropic APIНовый проект (появился в марте 2026) — экосистема ещё формируется
Поддержка LLM, VLM, OCR, эмбеддингов, реранкеровContinuous batching добавляет ~3–5% накладных расходов
Apache 2.0, полностью бесплатноНет поддержки GGUF (только MLX-формат)
Автообновление и автозапуск при сбояхИнтерфейс только в браузере (/admin), нет десктопного GUI
Интеграция с Claude Code, Cursor, Codex одним кликом
Работа полностью офлайн (CDN-зависимости встроены)

Сравнение с альтернативами

ПараметрoMLXOllamaLM Studio
ПлатформаmacOS + Apple SiliconmacOS / Linux / WindowsmacOS / Linux / Windows
Формат моделейMLXGGUF (+ MLX Preview)GGUF + MLX
KV-кеш на SSD✅ Многоуровневый, persistent❌ Только RAM❌ Только RAM
Continuous batching✅ Нативный⚠️ Ограниченный⚠️ Ограниченный
УправлениеMenu bar + Web UICLI + Web UI (Open WebUI)GUI-приложение
OpenAI API
Anthropic API✅ Нативный
VLM поддержка⚠️ Частичная
OCR-модели
Docker/Linux⚠️ Частичный
ЛицензияApache 2.0MITПроприетарная (бесплатно для личного использования)
ЦенаБесплатноБесплатноБесплатно / Enterprise

Ollama и LM Studio кешируют KV-состояние только в памяти, но когда контекст меняется в середине сессии — что постоянно происходит при работе с кодовыми агентами — весь кеш инвалидируется и пересчитывается с нуля. oMLX сохраняет каждый блок KV-кеша на SSD, поэтому ранее кешированные части всегда восстановимы. TTFT снижается с 30–90 секунд до менее чем 5 секунд на длинных контекстах.

📝 Реальный отзыв
“The Qwen3.5 models running on oMLX is so fast that it makes running local AI on Mac worthwhile. It is so much faster than LMStudio and the tool calling is so much more reliable.” — пользователь с официального сайта omlx.ai

Вердикт

oMLX подойдёт:

  • Разработчикам на Mac M1/M2/M3/M4, активно использующим агентские инструменты (Claude Code, Codex, OpenClaw)
  • Тем, кто работает с длинными контекстами и устал ждать по 30–90 секунд на каждый ответ
  • Командам, которым важна полная локальность и конфиденциальность данных
  • Тем, кто хочет запускать VLM и OCR-модели наравне с текстовыми LLM

oMLX не подойдёт:

  • Пользователям Windows или Linux
  • Тем, кто работает с GGUF-моделями из экосистемы llama.cpp
  • Тем, кому нужен Docker-деплой или headless Linux-сервер

Рейтинг: 8.5 / 10

оMLX решает реальную и болезненную проблему: медленный инференс при агентских рабочих нагрузках на Mac. Двухуровневый persistent KV-кеш — это честная техническая инновация, а не маркетинговый трюк. Проект молодой (март 2026), но развивается очень активно: коммиты почти ежедневно, активное community. Единственный существенный минус — жёсткая привязка к Apple Silicon и macOS.