omlx
omlx 是一款专为 Apple Silicon Mac 打造的大语言模型(LLM)推理服务器,让用户能直接从 macOS 菜单栏轻松管理本地 AI 模型。它旨在解决现有工具在“便捷性”与“控制力”之间难以兼顾的痛点:用户既可以将常用模型常驻内存以实现秒级响应,又能让大型模型按需加载,同时灵活设定上下文限制。
其核心亮点在于采用了创新的分级缓存技术,将热数据保留在内存中,而将历史对话上下文自动卸载至 SSD 存储。这意味着即使在长对话中切换模型或重启服务,之前的上下文依然可被快速复用,极大提升了本地大模型在编程辅助等实际场景中的实用性。
omlx 非常适合希望在本地隐私安全环境下运行大模型的开发者、研究人员以及极客用户。无论是需要通过 OpenAI 兼容接口集成到开发工作流中,还是单纯想在菜单栏一键启停模型服务,omlx 都提供了流畅的体验。它支持自动发现各类模型,内置可视化聊天界面,并可通过 Homebrew 或直接安装 macOS 应用快速部署,让在 Mac 上运行高性能本地大模型变得像使用普通系统工具一样简单自然。
使用场景
一位 macOS 开发者需要在本地运行大型语言模型(如 Llama 3)辅助编写复杂代码,同时希望保持系统流畅并支持多任务并发处理。
没有 omlx 时
- 内存瓶颈严重:加载大模型后占用全部统一内存,导致浏览器、IDE 等其他应用卡顿甚至崩溃,无法进行多任务操作。
- 上下文切换低效:每次开启新对话或切换模型时,必须重新加载权重和计算上下文,等待时间长且之前的缓存数据完全丢失。
- 管理方式繁琐:缺乏直观的控制界面,需通过复杂的命令行参数手动启停服务,难以实时监控显存状态或动态调整配置。
- 长文本处理受限:受限于纯内存架构,一旦代码上下文超出显存容量,推理速度急剧下降或直接报错,无法处理大型项目文件。
使用 omlx 后
- 智能分层缓存:omlx 利用 SSD 作为二级缓存存储历史 KV 状态,将常用模型驻留内存,既释放了宝贵内存资源,又确保了系统整体流畅度。
- 无缝上下文复用:即使在长对话中动态切换任务,omlx 也能从 SSD 快速召回之前的上下文缓存,实现“秒级”响应,完美支持像 Claude Code 这样的编程助手。
- 菜单栏一键管控:通过 macOS 菜单栏即可直观地固定常用模型、按需热交换重型模型,并实时查看资源占用,无需触碰命令行。
- 连续批处理优化:内置的连续批处理技术允许同时处理多个开发者的请求或并行任务,显著提升了本地推理的吞吐量和实用性。
omlx 通过将内存与 SSD 缓存智能结合,把原本仅能用于实验的本地大模型,转变为了开发者日常编码中稳定、高效且可管理的生产力工具。
运行环境要求
- macOS
不需要独立显卡,必须使用 Apple Silicon (M1/M2/M3/M4) 芯片,利用统一内存架构
最低未说明,推荐系统内存至少比模型需求多 8GB (默认进程内存限制为系统总内存 - 8GB)

快速开始
oMLX
LLM 推理,专为您的 Mac 优化
连续批处理与分层 KV 缓存,直接通过菜单栏管理。
junkim.dot@gmail.com · https://omlx.ai/me
安装 · 快速入门 · 功能 · 模型 · CLI 配置 · 基准测试 · oMLX.ai
我尝试过的每一种 LLM 服务器,都让我在便利性和控制权之间做出选择。我希望将常用模型常驻内存,按需自动交换较重的模型,设置上下文限制——并且这一切都能通过菜单栏来管理。
oMLX 在热态内存层和冷态 SSD 层之间持久化 KV 缓存——即使对话过程中上下文发生变化,所有历史上下文仍会保留在缓存中并可在后续请求中重复使用,这使得本地 LLM 在实际编码工作中与 Claude Code 等工具结合使用时变得切实可行。这就是我构建它的原因。
安装
macOS 应用程序
从 Releases 下载 .dmg 文件,将其拖入 Applications 文件夹即可完成安装。该应用程序包含应用内自动更新功能,因此未来的升级只需点击一下。请注意,macOS 应用程序不会安装 omlx CLI 命令。如需在终端中使用,请通过 Homebrew 或源码进行安装。
Homebrew
brew tap jundot/omlx https://github.com/jundot/omlx
brew install omlx
# 升级到最新版本
brew update && brew upgrade omlx
# 以后台服务运行(崩溃后自动重启)
brew services start omlx
# 可选:支持 MCP(模型上下文协议)
/opt/homebrew/opt/omlx/libexec/bin/pip install mcp
源码安装
git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e . # 仅核心
pip install -e ".[mcp]" # 支持 MCP(模型上下文协议)
需要 macOS 15.0+(Sequoia)、Python 3.10+ 和 Apple Silicon(M1/M2/M3/M4)。
快速入门
macOS 应用程序
从 Applications 文件夹启动 oMLX。欢迎界面会引导您完成三个步骤——模型目录、启动服务器以及首次下载模型。仅此而已。要连接 OpenClaw、OpenCode 或 Codex,请参阅 集成。
CLI
omlx serve --model-dir ~/models
服务器会自动从子目录中发现 LLM、VLM、嵌入模型和重新排序器。任何兼容 OpenAI 的客户端都可以连接到 http://localhost:8000/v1。内置聊天界面也可在 http://localhost:8000/admin/chat 访问。
Homebrew 服务
如果您通过 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(结构化应用日志)
功能
支持文本 LLM、视觉-语言模型(VLM)、OCR 模型、嵌入模型和重新排序器,运行于 Apple Silicon 平台。
管理仪表盘
位于 /admin 的 Web UI,用于实时监控、模型管理、聊天、基准测试以及每个模型的设置。支持英语、韩语、日语和中文。所有 CDN 依赖项均已打包,可完全离线运行。
视觉-语言模型
VLM 可以使用与文本 LLM 相同的连续批处理和分层 KV 缓存架构运行。支持多图像聊天、base64/URL/文件形式的图像输入,以及带有视觉上下文的工具调用。OCR 模型(DeepSeek-OCR、DOTS-OCR、GLM-OCR)会自动检测,并采用优化后的提示词。
分层 KV 缓存(热 + 冷)
基于 vLLM 的块级 KV 缓存管理,支持前缀共享和写时复制。缓存分为两层:
- 热层(RAM):频繁访问的块会保留在内存中,以便快速访问。
- 冷层(SSD):当热缓存满时,块会被卸载到 SSD,以 safetensors 格式存储。下次有匹配前缀的请求时,这些块会从磁盘恢复,而不是从头开始重新计算——即使在服务器重启后也是如此。
连续批处理
通过 mlx-lm 的 BatchGenerator 处理并发请求。最大并发请求数可通过 CLI 或管理面板进行配置。
Claude Code 优化
支持上下文缩放,以便使用较小上下文的模型运行 Claude Code。它会调整报告的 token 数量,使自动压缩触发时机恰当,并通过 SSE keep-alive 防止长时间预填充期间出现读取超时。
多模型服务
在同一服务器中加载大语言模型(LLM)、视觉语言模型(VLM)、嵌入模型和重排序模型。模型通过自动与手动控制相结合的方式进行管理:
- LRU逐出机制:当内存不足时,最近最少使用的模型会自动被逐出。
- 手动加载/卸载:管理员面板中的交互式状态标记允许您按需加载或卸载模型。
- 模型固定:将常用模型固定以始终保持加载状态。
- 每模型TTL:为每个模型设置空闲超时,在一段时间无活动后自动卸载。
- 进程内存限制:总内存上限(默认为系统RAM减去8GB)可防止系统范围内的内存溢出。
每模型设置
直接从管理员面板为每个模型配置采样参数、聊天模板关键字参数、TTL、模型别名、模型类型覆盖等。更改立即生效,无需重启服务器。
- 模型别名:设置一个自定义的API可见名称。
/v1/models返回该别名,请求既可以接受别名,也可以接受目录名。 - 模型类型覆盖:无论自动检测结果如何,均可手动将模型设置为LLM或VLM。
内置聊天功能
可以直接从管理员面板与任何已加载的模型进行对话。支持对话历史、模型切换、暗模式、推理模型输出以及针对VLM/OCR模型的图像上传。
模型下载器
在管理员仪表盘中直接搜索并下载来自HuggingFace的MLX模型。浏览模型卡片,查看文件大小,并一键下载。
集成
只需单击一下按钮,即可在管理员仪表盘中直接设置OpenClaw、OpenCode和Codex,无需手动编辑配置。
性能基准测试
管理员面板中的一键基准测试。测量预填充(PP)和文本生成(TG)的每秒令牌数,并进行部分前缀缓存命中测试,以获得更贴近实际的性能数据。
macOS菜单栏应用
原生PyObjC菜单栏应用(非Electron)。无需打开终端即可启动、停止和监控服务器。包含持久化的服务统计信息(重启后仍保留)、崩溃后自动重启以及应用内自动更新。
API兼容性
可无缝替代OpenAI和Anthropic的API。支持流式使用统计(stream_options.include_usage)、Anthropic自适应思维以及视觉输入(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模式验证以及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 | 命名空间下的 <minimax:tool_call> |
| Mistral | [TOOL_CALLS] |
| Kimi K2 | <|tool_calls_section_begin|> |
| Longcat | <longcat_tool_call> |
未列出以上的模型如果其聊天模板接受tools且输出采用公认的<|num_start|>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 |
CLI配置
# 已加载模型的内存限制
omlx serve --model-dir ~/models --max-model-memory 32GB
# 进程级内存限制(默认:自动 = 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%
# 调整最大并发请求数(默认:8)
omlx serve --model-dir ~/models --max-concurrent-requests 16
# 使用MCP工具
omlx serve --model-dir ~/models --mcp-config mcp.json
# HuggingFace镜像端点(适用于受限地区)
omlx serve --model-dir ~/models --hf-endpoint https://hf-mirror.com
# API密钥认证
omlx serve --model-dir ~/models --api-key your-secret-key
# 仅限本地访问:可通过管理员面板全局设置跳过验证
所有设置也可通过网页管理员面板在/admin处进行配置。设置会持久化到~/.omlx/settings.json,且CLI标志具有优先权。
架构
FastAPI服务器(OpenAI / Anthropic API)
│
├── 引擎池(多模型、LRU逐出、TTL、手动加载/卸载)
│ ├── 批处理引擎(LLMs、连续批处理)
│ ├── VLM引擎(视觉语言模型)
│ ├── 嵌入引擎
│ └── 重排序引擎
│
├── 进程内存强制执行器(总内存限制、TTL检查)
│
├── 调度器(先到先得、可配置并发度)
│ └── mlx-lm批处理生成器
│
└── 缓存堆栈
├── 分页缓存管理器(GPU、基于块、写时复制、前缀共享)
├── 热缓存(内存层级、写回策略)
└── 分页SSD缓存管理器(SSD冷层级、safetensors格式)
开发
命令行服务器
git clone https://github.com/jundot/omlx.git
cd omlx
pip install -e ".[dev]"
pytest -m "not slow"
macOS 应用程序
需要 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。
参与贡献
欢迎各位参与贡献!详情请参阅 贡献指南。
- 错误修复和功能改进
- 性能优化
- 文档改进
许可证
致谢
- Apple 的 MLX 和 mlx-lm
- mlx-vlm —— 在 Apple Silicon 上进行视觉语言模型推理
- vllm-mlx —— oMLX 最初基于 vllm-mlx v0.1.0 开发,随后在多模型服务、分层 KV 缓存、支持完整分页缓存的 VLM、管理面板以及 macOS 菜单栏应用程序等方面得到了显著演进
- venvstacks —— 用于 macOS 应用包的便携式 Python 环境分层技术
- mlx-embeddings —— 对 Apple Silicon 的嵌入模型支持
- llm-compressor —— MoE 模型的 AWQ 参考实现,被用作 oQ 权重均衡设计的参考。
版本历史
v0.3.5.dev12026/04/07v0.3.42026/04/05v0.3.22026/04/03v0.3.12026/04/02v0.3.02026/03/30v0.3.0rc12026/03/29v0.2.242026/03/28v0.2.232026/03/27v0.2.222026/03/26v0.2.212026/03/25v0.2.202026/03/23v0.2.20rc12026/03/22v0.2.20.dev32026/03/21v0.2.20.dev22026/03/21v0.2.20.dev12026/03/20v0.2.192026/03/18v0.2.19.dev22026/03/18v0.2.19.dev12026/03/18v0.2.182026/03/17v0.2.172026/03/17常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器