Skip to content
v1.3 — make your own model

Run large language models locally on your Mac. Now teach one to answer like you.

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

Made by Martin Turek

The MetalMind window on macOS: conversation history on the left, the Hugging Face model browser in the centre, and live unified memory, tokens per second, and time to first token on the right.

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.

New in 1.3

Make your own model

Show a small model three to ten examples of a request and the reply you would have written. MetalMind writes the rest of the practice material, trains on your GPU, and hands back a model that answers in your tone, your format, the role you gave it. No Python, no notebook, no cloud GPU — and nothing you show it leaves this Mac.

  1. Step 1

    Show it a handful of examples

    Write a request and the exact reply you would have sent. Three at the very least, six to ten is better. Or import them — JSONL, JSON, CSV straight out of Excel, a PDF or a Word file — or pick conversations you already had in MetalMind.

  2. Step 2

    MetalMind writes the practice material

    A handful of examples is not enough to learn a pattern from, so the model you chose invents new requests like yours and answers them in your style until there are enough. Fifty by default. You read them before anything is trained.

  3. Step 3

    The data is checked before it trains

    Duplicates and empty rows are dropped. Contradicting answers, replies that only echo the question, examples too long to fit, and one-word answers are all flagged — a few bad examples teach bad habits, and you untick them.

  4. Step 4

    Training runs on your GPU

    LoRA fine-tuning through Apple MLX, on this Mac, with the power cable in. About one example in six is held back to measure progress on questions the model never practised. It stops by itself when it stops improving and keeps the best point.

  5. Step 5

    Compare, then keep it

    The same held-back questions go to the original model and to yours, side by side, so you can see what changed before you commit to it. What you keep appears in the model picker under Your models.

  6. The whole walkthrough

    Every step of the wizard, what to import and from where, how the data is checked, and which models can be trained on which Mac.

    Make your own model, in full

What training will not do

It does not learn facts

Training teaches a model how to answer, not what is true. For questions about your prices, contracts or manuals, attach the files in a chat instead — then the model reads the real text every time.

It does not make a model smarter

A small model stays a small model. It gets better at your task, not better in general.

Your models only answer

They do not open files, search folders, or add calendar events. The regular models do that; a trained one is for replying.

Nothing is uploaded, ever

Your examples, the generated practice material, the training run and the finished model all stay on this Mac. There is no account to sign in to and no server to send them to.

A few dozen megabytes, not a second copy

What you train is an adapter layered over the base model, like a lens over a camera. Ten variations of an idea cost ten adapters, not ten copies of the weights, and the original model is left exactly as it was.

Versions you can go back to

Rename a model, edit the instructions it chats under, or train it again with more examples. Earlier versions are kept, so a retrain that turns out worse is not a one-way door.

It is a standard adapter, not a lock-in

Export writes adapter_config.json and adapters.safetensors — the layout mlx-lm reads — with the command to run it. Import works the same way round, whether the adapter came from MetalMind or from your own mlx-lm run.

On the local API as custom/<name>

A trained model is served over the OpenAI-compatible server like any other, so Cursor, Zed or a script reaches it by changing the model string. This, and chatting with a trained model, is what Pro pays for.

Planning a model and preparing its data are free, so the decision to buy comes with real examples in front of you. Training the model, chatting with it, and serving it over the local API are Pro.

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.

The model sees only what you hand it

Files and folders are read when you drag them in, and the calendar when you grant access. Nothing is indexed in the background, and no directory is walked that you did not open.

Nothing is written without a click

Every file edit, calendar event, reminder, and shortcut run is shown to you first and waits for your approval. There is no autonomous mode to switch on, because there is no switch.

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.

Training happens here too

The examples you write or import, the practice material MetalMind generates from them, and the training itself all run on this Mac. The model you end up with is a file in Application Support. None of it is uploaded, and no part of it is used to train anything of ours.

Speech is processed on device

Dictation and read-aloud use speech models running locally through MLX. Listening starts and stops on your click, and a dictated recording exists only in memory until it has been transcribed.

Who makes it

MetalMind is built by one person: an independent developer in the Czech Republic, with no company behind it and no investors to answer to. That is also the short answer to why there is no account system, no analytics, and no server — there is nobody here who would benefit from your data.

MetalMind on martinturek.dev

Agent tools

What it can do on your Mac

A local model that can only talk is a demo. A downloaded model in MetalMind reads the files you give it, looks at your schedule, and proposes changes — and every one of those changes stops and waits for you.

Your workspace, read locally

Drag files or whole folders into the composer. The model reads them, searches across them, and answers about the code in front of it — on your GPU, with nothing uploaded.

Edits arrive as a diff, not as a surprise

A proposed change is rendered as a side-by-side diff before anything touches disk. The model cannot write a single byte until you click.

Calendar and reminders

Ask about your schedule, or have the model stage an event or a reminder through EventKit. Reading needs your permission once; every new entry needs your approval each time.

Shortcuts and the Services menu

Two App Intents — Transform Text and Run Prompt — put a local model inside Shortcuts, and the model can launch system shortcuts you already have.

Reading is free. Writing — saving a file, adding an event, running a shortcut — is Pro. The diff previews and permission cards are on every plan, because they are what makes the rest safe, not a feature to charge for.

Voice and documents

Speak to it, and hand it your documents

Dictation, read-aloud, documents and recordings — all of it processed by models on this Mac, and all of it free. A recording of a meeting you could not send to a cloud transcription service is exactly the kind of thing this is for.

Dictate a message

Speak in almost any language and watch the words appear as you talk. Whisper runs on this Mac; listening starts and stops on your click, and the audio lives only in memory until it has been transcribed.

Have replies read back

Any answer read aloud in one of eight English voices by a speech model on this Mac. It loads in a moment and is released shortly after it falls silent, so it never holds memory the language model could use.

Hand it a document

Drop a PDF, a Word file, RTF or OpenDocument on a message and the model answers about what is inside. The text is extracted with PDFKit and the importers macOS already has — nothing is uploaded and no parsing service is involved.

Hand it a recording

Drop an audio file and it is transcribed locally, then summarised, searched or answered about like any other text. A meeting recording never leaves the Mac it was recorded on.

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. Port 8080 is only the default — set it to whatever you want in Settings → Server, whether 8080 is taken or you simply keep that range for something else.

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.

Structured output

Pass response_format with a JSON Schema and the server constrains generation to that shape. It cannot be combined with stream — enforcing a shape means the whole reply has to be produced before it is checked.

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.

Your own models, served too

A model you trained is served under the id custom/<name> and appears in /v1/models alongside the downloaded ones, so the client you already configured reaches it by changing one string. Serving a trained model over the API needs Pro, as using it in chat does.

curl
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
  }'
editor settings.json
{
  "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 }
        ]
      }
    }
  }
}

Both examples assume the default port. Change it in Settings → Server and the rest stays identical — only the number moves. Cursor and VS Code take the same two values in their own settings: the base URL http://127.0.0.1:<port>/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.

Files and calendar, read

The model searches and reads what you share, and looks at your calendar and reminders. It asks before opening anything.

Documents and recordings

Drop a PDF, a Word file or a recording on a message. Documents are read and recordings transcribed on this Mac, with what macOS already ships.

Dictation

Speak a message in almost any language and watch it appear as you talk. Transcribed on this Mac, and never recorded to disk.

Read aloud

Any reply read back in one of eight English voices, by a speech model running locally.

Plan your own model

The whole path up to training — picking the goal, writing or importing examples, generating the practice material and checking it — costs nothing. You decide whether to buy Pro with real data in front of you.

Diff previews and permission cards

Every proposed change is shown before it happens, on every plan. Safety is not a feature to sell — it is the reason the rest is safe to use.

Collapsible reasoning

Chain of thought from reasoning models is folded into a Thought section you can open, instead of flooding the answer.

History of 3 conversations

The last three conversations are kept and searchable.

Pro Subscription, or buy it once

Your own models

Train a model on your examples, chat with it, and serve it over the local API. Planning the model and preparing its data stay free — Pro is the training run and everything after it.

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.

Agent actions

The model saves files, adds events and reminders, and runs shortcuts — each one shown to you first, each one waiting for your click.

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.

MacMemoryModelQuanttok/sTTFT
Apple M4· 10 GPU cores16 GB unifiedQwen2.5-0.5B-Instruct4-bit68.0123 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.

Chat, dictation, read-aloud, documents and recordings are free with models up to 8B — and so is everything up to the training run when you make a model of your own. Pro is the training itself, using and serving the models it produces, larger models, unlimited local API requests, agent actions, Markdown export, the full conversation archive, and the generation controls.

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

Get MetalMind on 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

Questions worth asking

Does MetalMind need an internet connection?

Only to download a model. Once the weights are on disk, you can run MetalMind with networking off entirely — inference, the local API server, and the request inspector all work offline.

Is MetalMind a native Mac app?

Yes. It is a single macOS application written in Swift and SwiftUI, running models through Apple MLX with Metal on the GPU. There is no Python environment to set up, no Docker, no Electron shell, and no third-party inference binary — you install one app and it runs local AI on your Mac.

Can I use a local LLM in Cursor, VS Code, or Zed instead of a cloud API?

Yes. MetalMind runs an OpenAI-compatible server on 127.0.0.1 with SSE streaming. Point the editor at http://127.0.0.1:8080/v1 instead of a cloud provider — or at whatever port you set in Settings → Server, since 8080 is only the default — give it any non-empty API key, and it talks to the model on your Mac. Your code never reaches anyone else.

Can MetalMind edit files on my Mac?

It can propose edits, and you decide. Drag a file or a folder into the composer and the model reads it; when it wants to change something, the change is rendered as a side-by-side diff and nothing is written until you click to apply it. Applying edits is a Pro feature; reading files and seeing the diff is free.

Does the model have access to my whole disk?

No. It reads the files and folders you drag in, and nothing else. There is no background indexing, no directory crawling, and no persistent access to anything you did not hand it in that conversation.

Does it need access to my calendar?

Only if you want it to. Calendar and reminders go through EventKit, which asks for permission the first time and can be revoked in System Settings. Reading your schedule is free; staging a new event or reminder is a Pro feature, and every entry still waits for your approval.

Does the local API support structured output?

Yes. The server accepts response_format with a JSON Schema and constrains generation to that shape. It cannot be combined with streaming: a shape can only be enforced once the whole reply exists, so a structured request returns in one piece.

Which models can use tools?

Models trained for function calling. The model browser marks them with a Tools badge, so you can see before downloading whether a model will be able to read files, check your calendar, or run a shortcut.

Can I train a language model on my own Mac?

Yes. MetalMind 1.3 fine-tunes a small open-weights model on your own examples, entirely on your Mac, through a guided wizard — no Python, no notebook, no cloud GPU. You give it three to ten examples of a request and the reply you wanted, it writes the rest of the practice material, trains with LoRA on Apple MLX, and shows you the result next to the original model. Planning and preparing the data are free; the training run itself is a Pro feature.

Will training teach the model my facts?

No, and this is the thing worth getting right before you start. Fine-tuning teaches a model how to answer — your tone, your format, your role, how you label things — not what is true. A trained model will state your prices or your product details confidently and wrongly. For questions about your own documents, attach the files in a chat instead: the model then reads the real text every time.

Can I use a model I trained in Cursor or over the API?

Yes. A trained model is served by the local OpenAI-compatible server under the id custom/<name> and is listed by /v1/models, so any client you already configured reaches it by changing the model string. It needs Pro, the same as chatting with it does. The adapter can also be exported in the layout mlx-lm reads and used outside MetalMind entirely.

Where do the models come from?

From Hugging Face, in MLX format. You search the hub from inside the app and download the weights over HTTPS directly to your Mac.

How much disk space does a model take?

From roughly 280 MB for a small 4-bit model to tens of gigabytes for the largest ones. The model browser shows the download size and estimates whether the model fits in your unified memory before you start.

Does MetalMind work on an Intel Mac?

No. The engine is built on Apple MLX, Metal, and unified memory, all of which require Apple Silicon. MetalMind requires macOS 26 or later on an Apple Silicon Mac.

Do you send my conversations anywhere?

No. Never. There is no server to send them to — no account system, no backend, no analytics endpoint. Conversations are stored as a single file in Application Support on your Mac.

What happens to my Pro licence if I reinstall macOS?

Use Restore Purchases. Pro is a one-time purchase tied to your Apple ID, so reinstalling the system or moving to a new Mac restores it at no cost.

Can I use MetalMind commercially?

Yes. The application licence permits commercial use. The licence of each model you download is a separate matter, set by whoever published those weights — check it before you build on a given model.