Home›Runtimes›MLX (mlx-lm)

Runtime sheet

MLX (mlx-lm)

Version in force mlx-lm 0.32.2 (mlx 0.32.4)2026-10-16 (mlx-lm) / 2026-10-14 (mlx)Tree audited mlx-lm tag v0.31.3 + main 2026-08-25; mlx 0.32.1Licence MIT

MLX running a language model in a Mac terminal (WWDC25 session)
MLX running a language model in a Mac terminal (WWDC25 session) Still from the official video · Apple
WWDC26 session: Run local agentic AI on the Mac using MLX
WWDC26 session: Run local agentic AI on the Mac using MLX Still from the official video · Apple

Watch 4 videos

MLX is Apple’s way to run models on Apple Silicon Macs (not on Intel ones; on Windows, undocumented). mlx-lm makes 0 calls home out of the box and has no telemetry of its own: the only one comes with the Hugging Face download, and HF_HUB_DISABLE_TELEMETRY turns it off. MIT, public code. Version in force: mlx-lm 0.32.2 (mlx 0.32.4).

Apple’s array framework for Apple Silicon, plus the mlx-lm layer that turns it into a language-model runtime. They are two different packages: mlx is the maths framework, like NumPy or PyTorch, and mlx-lm is what actually runs models. It exploits unified memory: CPU and GPU share the same pool with no copying.

At a glance
Version and release pacemlx-lm 0.32.2 (mlx 0.32.4)
Which address it listens on127.0.0.1:8080
Steps to the first token2 steps
Hosts it contacts out of the box0
LicenceMIT
2

Steps to the first token

Vendor declared

0

Hosts it contacts out of the box

Measured by Local AI Scope

MIT

Licence

Measured by Local AI Scope

Videos

Videos: MLX (mlx-lm) 4

The official videos we found most useful. Press play and it opens right here.

The videos live on YouTube, and nothing loads from there until you press play (no-cookie mode). The thumbnail is served by us.

Method

How we checked this

Everything this sheet says about the network comes from reading the published source code and the official documentation on the date shown — not from watching the traffic. We have not yet sat the program in front of a network analyser, so this is static analysis, not observation. That capture is still on our list; the day we have it, these cells move up a level of evidence. Until then, no pretending we sniffed the wire: we have read the recipe, not tasted the dish.

Outbound

What leaves your machine

Before a local runtime gets anywhere near your documents, we ask it four questions: what it sends on its own, who else it calls, which address it listens on, and whether you can check any of that yourself. Think of it as a job interview.

Telemetry out of the box

None of its own — it inherits the download library’s. Verified by us in the primary source

We swept the whole mlx_lm package, the main branch, the published 0.31.3 and, on 1 October 2026, the new 0.32.0, looking for telemetry, analytics, posthog, sentry, mixpanel and usage stats: zero matches in all three. Same in the mlx framework. But mlx-lm downloads through huggingface_hub, and that library does collect data by default. This is the transferable finding of the whole comparison: the telemetry is not put there by the runtime, it is put there by the download library. A detail that says a lot: mlx-lm does not identify itself to Hugging Face at all, so its user-agent header literally starts with «unknown/None».

«By default, some data is collected by HF libraries (transformers, datasets, gradio,..) to monitor usage […]. You can set HF_HUB_DISABLE_TELEMETRY=1 as environment variable to globally disable telemetry.»

How to switch it off: HF_HUB_DISABLE_TELEMETRY=1, or the cross-vendor DO_NOT_TRACK=1. For a fully offline run, HF_HUB_OFFLINE=1 — Hugging Face’s own documentation warns that even when the model is already cached, an HTTP request is made to check whether the file has a newer version.

Source · consulted 2026-08-25

Other calls home

Every call this program makes on its own: what, where to, when and whether you can avoid it
What Where to When Can you avoid it Evidence
Model download huggingface.co (or modelscope with MLXLM_USE_MODELSCOPE) When you ask for a model that is not cached, and to check whether cached ones have a newer version. HF_HUB_OFFLINE=1 verified by us
Calibration file for quantising a GitHub gist Once only, and only if you quantise with AWQ, GPTQ or dynamic quantisation. Do not use those methods verified by us
Images a chat request passes as a web address whatever web address the request carries Since 0.32.1, when a chat request to mlx_lm.server contains an image as an http(s) address: the server downloads it itself (30-second timeout) before answering, whichever model you have loaded. No switch to turn it off: keep your own images inline (base64) and do not leave the server running while you browse verified by us
What MLX (mlx-lm) sends out on its own in one idle dayAn empty 24-hour strip: MLX (mlx-lm) makes no calls of its own in a whole day.Calls it makes on its own0 ×Not one call in 24 hoursevery connection it opens needs you to ask for it first06121824 h
With the program open and you doing nothing, MLX (mlx-lm) contacts nobody at all. Every connection it opens needs you to ask for it first — fetching a model, and little else. Read from the published source code, not from a traffic capture. Counted on MLX (mlx-lm) 0.31.3 (mlx 0.32.1), audited tree: mlx-lm tag v0.31.3. Read on 2026-10-17.

Source · consulted 2026-08-25

Which address it listens on

The address, the authentication and the CORS policy this program ships with
Setting Out of the box
Listens on 127.0.0.1:8080
Authentication out of the box none
CORS out of the box Wide open: any origin, any method, any header

It listens on localhost, but with CORS wide open — any origin, any method, any header — and with no authentication anywhere: its own examples say api_key=”not-needed”. The server is built on Python’s standard library, not a production server, and the documentation says as much. The same warning is in the code pip installs: mlx_lm.server prints it every time it starts («mlx_lm.server is not recommended for production as it only implements basic security checks.»). Verified by us in the primary source

«The MLX LM server is not recommended for production as it only implements basic security checks.»

Source · consulted 2026-08-25

Can this be audited?

Yes. MIT, Apple Inc., both mlx and mlx-lm. That is what lets us say «no telemetry of its own» as a checked absence rather than a claim — and, more importantly, what lets us say that its device types are exactly two. Verified by us in the primary source

Source · consulted 2026-08-25

Privacy policy

There is no privacy policy, and here that is good news rather than a gap: there is no service behind the program and no data controller to ask for one. not verified

Coverage

What it runs, and where

Platforms, accelerators and model formats: the three walls you can hit on that first, eager evening. Better to find them here than at midnight with a model half downloaded.

Where it runs

Platform support, one row per platform
Platform Support Evidence
Windows Partial and undocumented. The mlx framework has published official Windows wheels (x64 and ARM64) since July 2026 and tests them in CI, but its documentation never mentions Windows, and mlx-lm declares its dependency for macOS only — so outside macOS `pip install mlx-lm` does not install the engine. Whether mlx-lm works on Windows is not verified. verified by us
macOS Apple Silicon Yes, this is its platform. macOS 14.0 or newer to install; some large-model features need macOS 15. verified by us
macOS Intel No. All the macOS wheels are arm64; there is no x86_64 one. Watch out for running Python under Rosetta — their own guide warns about it. verified by us
Linux Yes for the mlx framework, which has a CUDA backend and a CPU-only build. Whether mlx-lm works well there we have not verified: its README only talks about Apple Silicon. vendor declared

What it accelerates

Hardware acceleration backends and their status
Backend Status Evidence
Metal Yes — the native path on Apple Silicon, with unified memory: CPU and GPU share one pool without copying data between them. vendor declared
CUDA Yes, in the mlx framework on Linux, requiring NVIDIA architecture SM 7.5 or higher. vendor declared
CPU Yes. It is one of the only two device types that exist in MLX. verified by us
ROCm We could not verify this. Their installation documentation only offers Apple Silicon, CUDA and CPU — but nowhere do they state that AMD is unsupported, so we report the absence rather than a «no». not verified
Vulkan We could not verify this. It does not appear in the documentation or in the backend tree, and there is no statement either way. not verified
Neural Engine No, and this one is a verified absence rather than a missing source: the device-type enumeration in the code has exactly two values, cpu and gpu, and the public documentation says so too. A lot of people assume MLX uses the Neural Engine. It does not. verified by us

«Currently supported device types are the CPU and GPU.»

Model formats it runs

MLX format and Hugging Face safetensors. It cannot run a GGUF. It only knows how to export to GGUF after merging an adapter, and even then only for Mistral, Mixtral and Llama-style models in fp16. verified by us

Source · consulted 2026-08-25

Living with it

Installing it, and living with it

The everyday part: how many steps to the first token, what it leaves on your disk, under which licence, and at what pace it changes under your feet once it is installed.

Steps to the first token

2 steps. Install the package and run mlx_lm.generate or mlx_lm.chat: it downloads the default model and answers. vendor declared

Step by step: install mlx-lm, run a first model, and close the server’s open CORS

If something fails: 7 errors, the exact message each one shows and the fix

What it writes to your disk

What this program writes to your disk and where
What Where Evidence
Models — the Hugging Face cache ~/.cache/huggingface/hub — the Hugging Face cache (HF_HOME · HF_HUB_CACHE) vendor declared
Chat history — not saved at all. The context lives in memory and is lost when you quit. No trace of your conversations is left on disk; of the five, only vLLM, which has no chat interface, is the same Nowhere — nothing is written verified by us
Quantisation calibration file — only created if you quantise with AWQ, GPTQ or dynamic quantisation ~/.cache/mlx-lm/ verified by us

Licence

MIT, Apple Inc. Both the framework and mlx-lm. verified by us

Source · consulted 2026-08-25

Version and release pace

Historically one release every one to three weeks. Then publishing stopped for more than five months, from 22 April to 1 October 2026, while development carried on (134 commits on 50 different days); 0.32.0 ended the gap. The mlx framework publishes steadily: around sixteen releases a year. verified by us

Source · consulted 2026-10-17

Warnings

What to know before you install it

  • After more than five months without a release, the package people actually install is moving again. From 22 April to 1 October 2026, `pip install mlx-lm` gave you 0.31.3 while the repository kept moving: 134 commits on 50 different days. Version 0.32.0, published on 1 October, brings that work into the package: its folder of model definitions goes from 119 files to 135 (the new ones include mistral4, kimi_k3 and olmo_hybrid). If you installed mlx-lm before October, a `pip install -U mlx-lm` is worth it.
  • MLX does not use the Neural Engine. The device types that exist in its code are exactly two: CPU and GPU.
  • It does not run GGUF. If your model collection is GGUF, MLX is no use to you without reconverting it.
  • The server listens on localhost but with CORS wide open and no authentication at all, and its own documentation says it is not for production. mlx_lm.server repeats that warning every time it starts.
  • Since 0.32.1 the server goes out and fetches images by itself. When a chat request contains an image as a web address, mlx_lm.server downloads it before answering, whichever model is loaded, even one that cannot see. Handy, with a side door: whoever can talk to the server picks the address your Mac visits, and that includes any web page you have open, however CORS is set, unless your browser asks you first. There is no switch to turn it off, and --allowed-origins does not stop it (it only decides who can read the answer): keep your own images inline (base64) and do not leave mlx_lm.server running while you browse.
  • It keeps no conversations on disk; of the five, only vLLM, which has no chat interface at all, does the same.