oMLX 是一个面向 Apple Silicon Mac 的开源 LLM 推理服务器,托管在 GitHub 的 jundot/omlx 仓库,目前获 21.2k star、1.8k fork。它运行在 macOS 15.0 及以上系统,支持 M1 到 M5 芯片,最新版本 v0.6.4 于 2026 年 8 月 29 日发布,采用 Apache-2.0 协议。与同类工具相比,它的两个核心差异点在于:分层 KV 缓存让本地模型在真实编码场景下保持可用;原生菜单栏应用把服务器的启停与监控收进菜单栏,不用开终端。
作者在项目说明里给出了设计动机:之前用过的每个 LLM 服务器都要在「便利」和「可控」之间二选一;oMLX 想两者都要——常用模型常驻内存、重模型按需切换、上下文长度可控,这一切都从菜单栏管理。
分层 KV 缓存:本地推理能用于真实工作的关键
大模型对话的瓶颈之一是反复重算历史上下文。oMLX 的缓存分两层:
- 热层(RAM):频繁访问的缓存块留在内存,保证快速响应;
- 冷层(SSD):热层写满后,缓存块以 safetensors 格式卸载到 SSD;下一次请求命中相同前缀时直接从磁盘恢复,而不是重新计算——服务器重启后也一样生效。
缓存采用块式管理(参考 vLLM 的设计),支持前缀共享与写时复制。作者称,即使对话中途更换上下文,过去的内容仍保持缓存可复用,这让本地模型在 Claude Code 这类真实编码工具中变得实用。
一个服务器,多种模型
oMLX 能在同一个服务里托管文本 LLM、视觉语言模型(VLM)、OCR 模型、embedding 模型与 reranker 模型,模型目录自动发现、类型自动识别。多模型管理提供四类控制:LRU 自动淘汰(内存紧张时按最近最少使用卸载)、手动加载/卸载、模型固定(常用模型常驻内存)与单模型 TTL(空闲超时自动卸载)。同时有一个总内存上限,默认设置为系统内存减 8GB,防止整机内存耗尽。
并发请求通过连续批处理(continuous batching)处理,默认最多 8 个并发,可在管理面板调整。
兼容 OpenAI 与 Anthropic API,一键接入编码工具
服务默认监听 http://localhost:8000/v1,提供 OpenAI 与 Anthropic 两套兼容接口:/v1/chat/completions、/v1/completions、/v1/messages、/v1/embeddings、/v1/rerank 与 /v1/models。任何支持 OpenAI 兼容协议的客户端都能直接连接。管理后台提供一键接入 OpenClaw、OpenCode、Codex、Hermes Agent、Copilot 和 Pi 的配置,无需手动编辑配置文件。
针对 Claude Code,oMLX 还做了专门优化:上下文缩放会按比例调整上报的 token 数,让自动压缩在正确时机触发;SSE keep-alive 避免长 prefill 阶段发生读超时。
安装与上手
三种安装方式:
- macOS 应用:下载 DMG 拖入 Applications,自带自动更新,同时安装一个轻量 CLI(~/.omlx/bin/omlx),终端命令与 Apple 快捷指令都可以控制服务;
- Homebrew:brew tap jundot/omlx 后 brew install jundot/omlx/omlx,以后台服务方式运行、崩溃自动重启;
- 源码安装:要求 Python 3.11–3.13;若要启用 GLM-5.2 / MiniMax M3 的原生内核(官方 DMG 已预编译),需要完整 Xcode 的 Metal 工具链——否则 GLM-5.2 会回退到慢约 30 倍的通用路径(M3 Ultra 实测约 845 对 29 tok/s)。
启动后把模型目录指到包含 MLX 格式模型的文件夹即可,模型会自动发现;也可以从管理后台直接搜索并下载 HuggingFace 上的 MLX 模型。
结论
如果手头有一台 Apple Silicon Mac,想跑本地模型又不愿意牺牲控制力,oMLX 是把「易用」和「可控」结合得比较完整的开源选择:菜单栏管理、分层 KV 缓存、多模型同服、OpenAI/Anthropic 双兼容 API 一次配齐,Apache-2.0 许可允许自由使用与二次修改。