Run large language models locally on your Mac. Nothing leaves it.
A local LLM runner and benchmark for Apple Silicon, built on Apple MLX. No telemetry, no account, nothing leaves this Mac.
macOS 26 or later · Apple Silicon Mac

A native Mac app for local AI
MetalMind downloads open-weights language models from Hugging Face in Apple's MLX format and runs them on the GPU and unified memory of your Apple Silicon Mac. Once the weights are on disk it works offline, with no account and no cloud provider in between.
It is not a wrapper around a cloud API, and not an Electron window around llama.cpp. The engine is Swift and Metal on Apple MLX, the interface is SwiftUI, and the whole thing is one application with nothing to install alongside it — no Python, no Docker, no runtime to manage.
Privacy
Nothing leaves your Mac
Not as a slogan — as a list of what the application actually does. If it opened a connection you did not ask for, it would be written here too.
Models run on your GPU
Prompts, context, and generated tokens are processed by Apple MLX on the GPU of your Mac. No prompt is ever sent to a server, because there is no server to send it to.
No telemetry of any kind
No analytics SDK, no usage events, no crash reporting, no advertising identifier. The app does not know how often you open it.
One outbound connection, on request
The only network connection MetalMind opens by itself is to Hugging Face, to search for models and download weights — and only after you ask for a specific model.
The API server is bound to 127.0.0.1
The local server listens on the loopback interface only. It is not exposed on your network interface, so nothing on your LAN can reach it.
Conversations are one file you own
Chat history is stored as a single file in Application Support inside the app sandbox. Delete the file and the history is gone. Nobody else has a copy.
For developers
Point your editor at 127.0.0.1 instead of a cloud API
The server speaks the OpenAI protocol, so the client you already use needs one changed base URL and nothing else.
OpenAI-compatible, on localhost
A /v1/chat/completions endpoint with SSE streaming on port 8080 by default. The port is configurable if 8080 is taken.
Works with the editors you already use
Cursor, VS Code, Zed, and anything else that speaks the OpenAI protocol. The API key field can be any string — it is not checked, because there is no account.
Concurrent requests queue instead of failing
Requests are serialised through the engine. Above the queue limit the server answers 503 with a Retry-After header, which standard clients honour and retry on their own.
Request inspector, in the free tier
Every call with timings and full payloads, plus Copy as cURL. A paid API you cannot debug is worth less than a free one you can, so this is not behind the paywall.
curl http://127.0.0.1:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer local" \
-d '{
"model": "qwen2.5-7b-instruct-4bit",
"messages": [{"role": "user", "content": "Explain unified memory."}],
"stream": true
}'{
"language_models": {
"openai_compatible": {
"MetalMind": {
"api_url": "http://127.0.0.1:8080/v1",
"api_key": "local",
"available_models": [
{ "name": "qwen2.5-7b-instruct-4bit", "max_tokens": 8192 }
]
}
}
}
}Cursor and VS Code take the same two values in their own settings: the base URL http://127.0.0.1:8080/v1 and an API key, which can be any non-empty string.
Features
What is free, and what is in Pro
Free
Start with no download
If your Mac has Apple Intelligence enabled, the system model is offered as a choice and is available immediately.
Local chat up to 8B
Run open-weights models up to 8 billion parameters, downloaded in MLX format from Hugging Face.
Zero-RAM idle
After 5 minutes without activity the weights are released from unified memory, and reloaded on your next prompt.
Live telemetry
Tokens per second, time to first token, and unified memory in use — while the model is generating.
OpenAI-compatible server
The full local server, capped at 25 requests in the free tier.
Request inspector
Timings, payloads, and Copy as cURL for every request the server handled.
Model browser
Search Hugging Face from inside the app, with an estimate of whether a model fits in your memory before you download it.
History of 3 conversations
The last three conversations are kept and searchable.
Pro Subscription, or buy it once
Models of any size
No parameter ceiling, including Mixture-of-Experts models — as far as your unified memory goes.
Unlimited API requests
The 25-request cap on the local server is removed.
Markdown export
Export a conversation to Markdown with the measured metrics attached to each answer.
40 conversations
History grows from 3 to 40 stored conversations.
Sampling and system prompt
Set your own temperature and your own system prompt.
Configurable auto-sleep
Choose when weights are evicted: never, or after 1, 5, 15, or 60 minutes.
Performance
Numbers, with the machine attached
MetalMind measures tokens per second and time to first token on every run, and keeps the best run for each model. Throughput depends on the chip, the memory bandwidth, the model, and the quantisation — so each figure below names all four. A number without that context tells you nothing.
| Mac | Memory | Model | Quant | tok/s | TTFT |
|---|---|---|---|---|---|
| Apple M4· 10 GPU cores | 16 GB unified | Qwen2.5-0.5B-Instruct | 4-bit | 68.0 | 123 ms |
Scroll the table sideways →
Apple Intelligence
The system model, when your Mac has one
What you get
- If Apple Intelligence is enabled on your Mac, the system model appears as a choice in the model picker.
- It is available immediately. Nothing is downloaded, and it takes no additional disk space.
What it cannot do
- A smaller context window than the open-weights models you download.
- Less control over sampling — temperature and system prompt do not apply the same way.
- Responses are subject to Apple content rules.
- It is not served through the local API. The OpenAI-compatible server only serves MLX models.
Pricing
Three ways to pay for Pro. One of them is once.
Every paid plan unlocks the same features — the difference is only how long you pay for them. The lifetime unlock is a single payment with no renewal and nothing to cancel, which is the option most tools in this category do not offer at all. Sold through the App Store and tied to your Apple ID.
Free
$0
Local chat with models up to 8B, the local server with 25 requests, the request inspector, live telemetry, the model browser, and 3 stored conversations.
No purchase, no account
Pro — 3 months
$4.99
/ 3 months≈ $1.66 / mo
Every Pro feature, renewed every three months. Cancel in the App Store at any time.
Quarterly flexibility
Pro — 1 year
$9.99
/ year≈ $0.83 / mo
Every Pro feature for a year. Half the monthly cost of the quarterly plan.
Annual access
Pro — Lifetime
$16.99
one-time
Every Pro feature, bought once. No renewal, nothing to cancel — roughly the price of twenty months of the annual plan, and then it stops.
Pay once, keep forever
MetalMind is coming to the Mac App Store. Subscriptions are managed and cancelled in the App Store. The lifetime unlock has nothing to manage. Restore Purchases brings any of them back on a new Mac signed in to the same Apple ID.
FAQ