oMLX logo

oMLX

Visit

oMLX is an Apache-2.0 Apple Silicon inference server with SSD KV cache and a macOS menu bar app for coding agents.

Share:
View alternatives

oMLX is a macOS-native MLX inference server for Apple Silicon. The product site is omlx.ai. The repo jundot/omlx is Apache-2.0, created 2026-02-13, language Python. On 2026-09-12 GitHub listed 21,647 stars and 1,859 forks, last push 2026-09-11. Latest GitHub release checked the same day was v0.6.4 (published 2026-08-29). r/LocalLLaMA's home feed and the r/oMLX community surfaced it next to Qwen3.8-Flash-Next local runs.

Compare mlx-serve if you wanted a Zig binary with no Python, Ollama if you needed multi-OS plus a cloud seat, or Claude Code if you only needed the agent that can point at localhost.

Key Features

  • Paged SSD KV cache: cache blocks persist to disk as safetensors. Hot blocks stay in RAM, cold blocks go to SSD with LRU. Prefixes restore across requests and restarts instead of being recomputed.
  • Continuous batching: mlx-lm BatchGenerator. First-party table on an M3 Ultra 512 GB, Qwen3-Coder-Next 8bit, pp1024/tg128, no cache reuse: 1x 58.7 tok/s, 8x 243.3 tok/s (4.14x).
  • Native menu bar app: signed and notarized, in-app auto-update, not Electron. Web dashboard for models, chat, and metrics. Homebrew tap jundot/omlx.
  • OpenAI + Anthropic drop-in: /v1/chat/completions and /v1/messages on http://localhost:8000. Dashboard copies the config command for Claude Code, Cursor, OpenClaw, OpenCode, Codex.
  • Shared model dirs: reads ~/.cache/huggingface/hub, LM Studio folders, and custom directories. LLM, VLM, embedding, and reranker models can load together.

Limitation: 21,647 stars is a heat signal, not an audit. Speed tables are first-party benches on an M3 Ultra 512 GB, not a third-party study. Needs macOS 15+ and Apple Silicon. Site says 16 GB RAM minimum, 64 GB+ recommended. Source installs need Python 3.11-3.13. GLM-5.2 / MiniMax fused kernels need full Xcode or the official DMG; a plain pip install silently falls back.

Use Cases

  • Claude Code / Cursor / OpenClaw on a Mac where agent sessions keep invalidating KV cache and Ollama/LM Studio recompute 30-90 seconds of prompt.
  • People already holding Hugging Face or LM Studio weights who do not want a second download.
  • People who should use mlx-serve instead if they wanted a Zig binary and Anthropic dialect on port 11234 with no Python.

Pricing

Piece Price Notes from first-party pages 2026-09-12
oMLX app, CLI, server $0 Apache-2.0. About 21,647 stars. DMG from GitHub Releases.
Host machine Your Mac Apple Silicon, macOS 15+. No cloud inference fee.

Getting Started

  1. Download the DMG from github.com/jundot/omlx/releases and drag it to Applications, or brew tap jundot/omlx https://github.com/jundot/omlx && brew install jundot/omlx/omlx.
  2. Launch the app. The welcome screen sets the model directory, starts the server, and can download a first model.
  3. Point Claude Code or Cursor at http://localhost:8000. The dashboard prints the exact export command.
  4. Optional CLI: omlx serve --model-dir ~/models.

First-party resource: the README and omlx.ai.

Frequently Asked Questions

Is this the same as mlx-serve?

No. mlx-serve is a Zig server on port 11234 with embedded llama.cpp. oMLX is Python/MLX on port 8000 with SSD-tier KV cache and a menu bar app.

Do I need to re-download models?

No. It reads the standard Hugging Face hub cache and LM Studio folders.

Does it need a GPU server?

No. Apple Silicon only. Not Windows, not Linux, not Intel Macs.

Alternatives

Tips

  1. Prefer the signed DMG if you serve GLM-5.2 or MiniMax. Custom kernels are precompiled there.
  2. 64 GB+ RAM is the comfortable daily-coding floor on the site's own FAQ.
  3. After the second turn, the site's claim is TTFT under 5 seconds when the prefix hits SSD cache. First turn still pays prefill.

Conclusion

oMLX is the Mac-local server to try when coding agents keep blowing in-memory KV cache. Start at omlx.ai, then keep mlx-serve in the shortlist if you wanted no Python.

Comments

No comments yet. Be the first to comment!