oMLX:Mac 本地大语言模型推理框架
oMLX 是专为 Apple Silicon Mac 优化的本地大语言模型推理框架,支持文本 LLM、视觉语言模型及 OCR 等。核心特性包括分层 KV 缓存(热缓存 RAM+ 冷缓存 SSD)、连续批处理调度及多模型协同服务。提供 macOS 原生应用、CLI 工具及管理后台 Web UI,兼容 OpenAI 和 Anthropic API。支持模型下载、基准测试及工具调用,适用于本地开发辅助、企业私有化部署及资源受限环境优化。

oMLX 是专为 Apple Silicon Mac 优化的本地大语言模型推理框架,支持文本 LLM、视觉语言模型及 OCR 等。核心特性包括分层 KV 缓存(热缓存 RAM+ 冷缓存 SSD)、连续批处理调度及多模型协同服务。提供 macOS 原生应用、CLI 工具及管理后台 Web UI,兼容 OpenAI 和 Anthropic API。支持模型下载、基准测试及工具调用,适用于本地开发辅助、企业私有化部署及资源受限环境优化。

oMLX 是一个专为 Apple Silicon Mac 优化的本地大语言模型推理框架,核心目标是在便利性与可控性之间取得平衡,让本地 LLM 在实际编码、多轮对话等场景中真正可用。
下载 DMG 拖入 Applications,支持自动更新。下载地址:https://github.com/jundot/omlx/releases
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx
# 升级到最新版本
brew update && brew upgrade omlx
# 作为后台服务运行(崩溃时自动重启)
brew services start omlx
# 可选:MCP(Model Context Protocol)支持
/opt/homebrew/opt/omlx/libexec/bin/pip install mcp
需 Python 3.10+ 与 Apple Silicon。
git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e .
# 仅核心
pip install -e ".[mcp]"
# 含 MCP(Model Context Protocol)支持
从 Applications 文件夹启动 oMLX。欢迎界面会引导你完成三个步骤 — 模型目录设置、服务器启动、首个模型下载。


omlx serve --model-dir ~/models
服务器会自动从子目录中发现 LLM、VLM、嵌入模型和重排序模型。任何 OpenAI 兼容客户端都可以连接到 http://localhost:8000/v1。内置聊天 UI 也可在 http://localhost:8000/admin/chat 使用。
如果通过 Homebrew 安装,可以将 oMLX 作为托管后台服务运行:
brew services start omlx # 启动(崩溃时自动重启)
brew services stop omlx # 停止
brew services restart omlx # 重启
brew services info omlx # 查看状态
服务使用默认配置运行 omlx serve(~/.omlx/models,端口 8000)。要自定义,可以设置环境变量(OMLX_MODEL_DIR、OMLX_PORT 等),或运行一次 omlx serve --model-dir /your/path 将设置保存到 ~/.omlx/settings.json。
日志写入两个位置:
$(brew --prefix)/var/log/omlx.log(stdout/stderr)~/.omlx/logs/server.log(结构化应用日志)在 Apple Silicon 上支持文本 LLM、视觉语言模型(VLM)、OCR 模型、嵌入模型和重排序模型。
在 /admin 提供实时监控、模型管理、聊天、基准测试和模型级设置的 Web UI。支持英语、韩语、日语和中文。所有 CDN 依赖已内置,完全支持离线运行。

使用与文本 LLM 相同的连续批处理和分层 KV 缓存堆栈运行 VLM。支持多图聊天、base64/URL/文件图像输入,以及带视觉上下文的工具调用。OCR 模型(DeepSeek-OCR、DOTS-OCR、GLM-OCR)会被自动识别,并使用优化的提示词。
借鉴 vLLM 的基于块的 KV 缓存管理,支持前缀共享和写时复制(Copy-on-Write)。缓存分为两个层级:

通过 mlx-lm 的 BatchGenerator 处理并发请求。预填充和补全批大小可配置。
支持在 Claude Code 中使用较小上下文模型的上下文缩放。通过缩放上报的 Token 数量,让自动压缩在合适的时机触发,同时提供 SSE keep-alive 防止长时间预填充导致的读取超时。
在同一服务器中加载 LLM、VLM、嵌入模型和重排序模型。通过自动和手动控制的组合管理模型:
在管理后台直接配置每个模型的采样参数、聊天模板参数、TTL、模型别名、模型类型覆盖等。修改即时生效,无需重启服务器。
/v1/models 返回别名,请求时别名和目录名均可使用。
从管理后台直接与已加载的模型聊天。支持对话历史、模型切换、深色模式、推理模型输出,以及 VLM/OCR 模型的图片上传。

在管理后台中直接搜索和下载 HuggingFace 上的 MLX 模型。浏览模型卡片、查看文件大小,一键下载。

从管理后台一键运行基准测试。测量预填充(PP)和 Token 生成(TG)的每秒 Token 数,包含部分前缀缓存命中测试以获得真实的性能数据。

原生 PyObjC 菜单栏应用(非 Electron)。无需打开终端即可启动、停止和监控服务器。包含持久化服务统计(重启后保留)、崩溃自动重启和应用内自动更新。

OpenAI 和 Anthropic API 的直接替代品。支持流式使用统计(stream_options.include_usage)、Anthropic adaptive thinking 和视觉输入(base64、URL)。
| 端点 | 说明 |
|---|---|
POST /v1/chat/completions | 聊天补全(流式) |
POST /v1/completions | 文本补全(流式) |
POST /v1/messages | Anthropic Messages API |
POST /v1/embeddings | 文本嵌入 |
POST /v1/rerank | 文档重排序 |
GET /v1/models | 列出可用模型 |
支持 mlx-lm 中所有可用的函数调用格式、JSON Schema 验证和 MCP 工具集成。工具调用需要模型的聊天模板支持 tools 参数。以下模型系列通过 mlx-lm 的内置工具解析器自动检测:
| 模型系列 | 格式 |
|---|---|
| Llama、Qwen、DeepSeek 等 | JSON <tool_call> |
| Qwen3.5 系列 | XML <function=...> |
| Gemma | <start_function_call> |
| GLM (4.7, 5) | <arg_key>/<arg_value> XML |
| MiniMax | Namespaced <minimax:tool_call> |
| Mistral | [TOOL_CALLS] |
| Kimi K2 | < |
| Longcat | <longcat_tool_call> |
上表未列出的模型,只要聊天模板支持 tools 参数且输出采用可识别的 <tool_call> XML 格式,也有可能正常工作。包含工具调用的流式请求会缓冲全部内容,在完成后统一返回结果。
将 --model-dir 指向包含 MLX 格式模型子目录的目录。支持两级目录结构(如 mlx-community/model-name/)。
~/models/
├── Step-3.5-Flash-8bit/
├── Qwen3-Coder-Next-8bit/
├── gpt-oss-120b-MXFP4-Q8/
├── Qwen3.5-122B-A10B-4bit/
└── bge-m3/
模型会按类型自动识别。也可以直接在管理后台下载模型。
| 类型 | 模型 |
|---|---|
| LLM | mlx-lm 支持的所有模型 |
| VLM | Qwen3.5 系列、GLM-4V、Pixtral 及其他 mlx-vlm 模型 |
| OCR | DeepSeek-OCR、DOTS-OCR、GLM-OCR |
| 嵌入 | BERT、BGE-M3、ModernBERT |
| 重排序 | ModernBERT、XLM-RoBERTa |
# 已加载模型的内存限制
omlx serve --model-dir ~/models --max-model-memory 32GB
# 进程级内存限制(默认:auto = RAM - 8GB)
omlx serve --model-dir ~/models --max-process-memory 80%
# 启用 KV 块的 SSD 缓存
omlx serve --model-dir ~/models --paged-ssd-cache-dir ~/.omlx/cache
# 设置内存热缓存大小
omlx serve --model-dir ~/models --hot-cache-max-size 20%
# 调整批大小
omlx serve --model-dir ~/models --prefill-batch-size 8 --completion-batch-size 32
# 使用 MCP 工具
omlx serve --model-dir ~/models --mcp-config mcp.json
# API 密钥认证
omlx serve --model-dir ~/models --api-key your-secret-key
# 仅限 Localhost:在管理后台全局设置中跳过验证
以上所有设置也可以在 /admin 的 Web 管理后台中配置。设置保存在 ~/.omlx/settings.json,CLI 参数优先级更高。
FastAPI Server (OpenAI / Anthropic API)
│ ├── EnginePool (多模型、LRU 驱逐、TTL、手动加载/卸载)
│ ├── BatchedEngine (LLM,连续批处理)
│ ├── VLMEngine (视觉语言模型)
│ ├── EmbeddingEngine
│ └── RerankerEngine
│ ├── ProcessMemoryEnforcer (总内存限制、TTL 检查)
│ ├── Scheduler (FCFS,可配置批大小)
│ └── mlx-lm BatchGenerator
│ └── Cache Stack
├── PagedCacheManager (GPU,基于块,CoW,前缀共享)
├── Hot Cache (内存缓存,write-back)
└── PagedSSDCacheManager (SSD 冷缓存,safetensors 格式)
git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e ".[dev]"
pytest -m "not slow"
需要 Python 3.11+ 和 venvstacks(pip install venvstacks)。
cd packaging
# 完整构建(venvstacks + 应用包 + DMG)
python build.py
# 跳过 venvstacks(仅代码更改)
python build.py --skip-venv
# 仅 DMG
python build.py --dmg-only
应用包结构和层配置的详细说明请参阅 packaging/README.md。
/admin Web UI,支持实时监控、模型管理、聊天测试、基准测试
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online