oMLX: LLM-сервер для Apple Silicon из меню macOS
Обзор oMLX — open-source LLM-инференс сервера с continuous batching и SSD-кешем для Mac на Apple Silicon, управляемого из меню macOS.
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-ориентированные пользователи, не желающие отправлять данные в облако
- Энтузиасты, кому важна простота управления без постоянного использования терминала
Ключевые возможности
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 ГБ+ рекомендуется для комфортной работы с крупными моделями.
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
| Двухуровневый KV-кеш выживает после перезапуска сервера | Только Apple Silicon + macOS 15+ |
| TTFT на длинных контекстах снижается с 30–90 с до 1–3 с | Требует Python 3.10+ и venvstacks для разработки |
| Нативный PyObjC-апп (не Electron) в меню macOS | MLX-формат: меньше моделей, чем в GGUF-экосистеме |
| Совместимость с OpenAI и Anthropic API | Новый проект (появился в марте 2026) — экосистема ещё формируется |
| Поддержка LLM, VLM, OCR, эмбеддингов, реранкеров | Continuous batching добавляет ~3–5% накладных расходов |
| Apache 2.0, полностью бесплатно | Нет поддержки GGUF (только MLX-формат) |
| Автообновление и автозапуск при сбоях | Интерфейс только в браузере (/admin), нет десктопного GUI |
| Интеграция с Claude Code, Cursor, Codex одним кликом | |
| Работа полностью офлайн (CDN-зависимости встроены) |
Сравнение с альтернативами
| Параметр | oMLX | Ollama | LM Studio |
|---|---|---|---|
| Платформа | macOS + Apple Silicon | macOS / Linux / Windows | macOS / Linux / Windows |
| Формат моделей | MLX | GGUF (+ MLX Preview) | GGUF + MLX |
| KV-кеш на SSD | ✅ Многоуровневый, persistent | ❌ Только RAM | ❌ Только RAM |
| Continuous batching | ✅ Нативный | ⚠️ Ограниченный | ⚠️ Ограниченный |
| Управление | Menu bar + Web UI | CLI + Web UI (Open WebUI) | GUI-приложение |
| OpenAI API | ✅ | ✅ | ✅ |
| Anthropic API | ✅ Нативный | ❌ | ❌ |
| VLM поддержка | ✅ | ⚠️ Частичная | ✅ |
| OCR-модели | ✅ | ❌ | ❌ |
| Docker/Linux | ❌ | ✅ | ⚠️ Частичный |
| Лицензия | Apache 2.0 | MIT | Проприетарная (бесплатно для личного использования) |
| Цена | Бесплатно | Бесплатно | Бесплатно / Enterprise |
Ollama и LM Studio кешируют KV-состояние только в памяти, но когда контекст меняется в середине сессии — что постоянно происходит при работе с кодовыми агентами — весь кеш инвалидируется и пересчитывается с нуля. oMLX сохраняет каждый блок KV-кеша на SSD, поэтому ранее кешированные части всегда восстановимы. TTFT снижается с 30–90 секунд до менее чем 5 секунд на длинных контекстах.
Вердикт
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.