omlx

GitHub
9.7k 839 简单 1 次阅读 今天Apache-2.0开发框架语言模型插件
AI 解读 由 AI 自动生成,仅供参考

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
GPU

不需要独立显卡,必须使用 Apple Silicon (M1/M2/M3/M4) 芯片,利用统一内存架构

内存

最低未说明,推荐系统内存至少比模型需求多 8GB (默认进程内存限制为系统总内存 - 8GB)

依赖
notes1. 仅支持 macOS 15.0+ (Sequoia) 及更高版本。 2. 必须在 Apple Silicon 硬件上运行,不支持 Intel Mac 或其他平台。 3. 提供分层 KV 缓存机制,可将不常用的缓存块卸载到 SSD 以节省内存。 4. 支持通过 Homebrew 安装或直接下载 macOS .dmg 应用程序。
python3.10+
mlx-lm
mlx-vlm
PyObjC
mcp (可选)
omlx hero image

快速开始

oMLX

oMLX

LLM 推理,专为您的 Mac 优化
连续批处理与分层 KV 缓存,直接通过菜单栏管理。

Buy Me A Coffee

License Python 3.10+ Apple Silicon

junkim.dot@gmail.com · https://omlx.ai/me

安装 · 快速入门 · 功能 · 模型 · CLI 配置 · 基准测试 · oMLX.ai

English · 中文 · 한국어 · 日本語


oMLX 管理仪表盘

我尝试过的每一种 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,请参阅 集成

oMLX 欢迎界面 oMLX 菜单栏

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_DIROMLX_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 依赖项均已打包,可完全离线运行。

oMLX 管理仪表盘

视觉-语言模型

VLM 可以使用与文本 LLM 相同的连续批处理和分层 KV 缓存架构运行。支持多图像聊天、base64/URL/文件形式的图像输入,以及带有视觉上下文的工具调用。OCR 模型(DeepSeek-OCR、DOTS-OCR、GLM-OCR)会自动检测,并采用优化后的提示词。

分层 KV 缓存(热 + 冷)

基于 vLLM 的块级 KV 缓存管理,支持前缀共享和写时复制。缓存分为两层:

  • 热层(RAM):频繁访问的块会保留在内存中,以便快速访问。
  • 冷层(SSD):当热缓存满时,块会被卸载到 SSD,以 safetensors 格式存储。下次有匹配前缀的请求时,这些块会从磁盘恢复,而不是从头开始重新计算——即使在服务器重启后也是如此。

oMLX 热冷缓存

连续批处理

通过 mlx-lm 的 BatchGenerator 处理并发请求。最大并发请求数可通过 CLI 或管理面板进行配置。

Claude Code 优化

支持上下文缩放,以便使用较小上下文的模型运行 Claude Code。它会调整报告的 token 数量,使自动压缩触发时机恰当,并通过 SSE keep-alive 防止长时间预填充期间出现读取超时。

多模型服务

在同一服务器中加载大语言模型(LLM)、视觉语言模型(VLM)、嵌入模型和重排序模型。模型通过自动与手动控制相结合的方式进行管理:

  • LRU逐出机制:当内存不足时,最近最少使用的模型会自动被逐出。
  • 手动加载/卸载:管理员面板中的交互式状态标记允许您按需加载或卸载模型。
  • 模型固定:将常用模型固定以始终保持加载状态。
  • 每模型TTL:为每个模型设置空闲超时,在一段时间无活动后自动卸载。
  • 进程内存限制:总内存上限(默认为系统RAM减去8GB)可防止系统范围内的内存溢出。

每模型设置

直接从管理员面板为每个模型配置采样参数、聊天模板关键字参数、TTL、模型别名、模型类型覆盖等。更改立即生效,无需重启服务器。

  • 模型别名:设置一个自定义的API可见名称。/v1/models返回该别名,请求既可以接受别名,也可以接受目录名。
  • 模型类型覆盖:无论自动检测结果如何,均可手动将模型设置为LLM或VLM。

oMLX Chat Template Kwargs

内置聊天功能

可以直接从管理员面板与任何已加载的模型进行对话。支持对话历史、模型切换、暗模式、推理模型输出以及针对VLM/OCR模型的图像上传。

oMLX Chat

模型下载器

在管理员仪表盘中直接搜索并下载来自HuggingFace的MLX模型。浏览模型卡片,查看文件大小,并一键下载。

oMLX Model Downloader

集成

只需单击一下按钮,即可在管理员仪表盘中直接设置OpenClaw、OpenCode和Codex,无需手动编辑配置。

oMLX Integrations

性能基准测试

管理员面板中的一键基准测试。测量预填充(PP)和文本生成(TG)的每秒令牌数,并进行部分前缀缓存命中测试,以获得更贴近实际的性能数据。

oMLX Benchmark Tool

macOS菜单栏应用

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

oMLX Menubar Stats

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

参与贡献

欢迎各位参与贡献!详情请参阅 贡献指南

  • 错误修复和功能改进
  • 性能优化
  • 文档改进

许可证

Apache 2.0

致谢

  • Apple 的 MLXmlx-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/07
v0.3.42026/04/05
v0.3.22026/04/03
v0.3.12026/04/02
v0.3.02026/03/30
v0.3.0rc12026/03/29
v0.2.242026/03/28
v0.2.232026/03/27
v0.2.222026/03/26
v0.2.212026/03/25
v0.2.202026/03/23
v0.2.20rc12026/03/22
v0.2.20.dev32026/03/21
v0.2.20.dev22026/03/21
v0.2.20.dev12026/03/20
v0.2.192026/03/18
v0.2.19.dev22026/03/18
v0.2.19.dev12026/03/18
v0.2.182026/03/17
v0.2.172026/03/17

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

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 真正成长为懂上

154.3k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|3天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|4天前
插件Agent图像

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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架