How to run a local OpenAI-compatible API on your Mac
- Outlier runs an OpenAI-compatible HTTP server on your own machine, so anything that speaks the OpenAI API can talk to it.
- You change one line — the base URL — and keep the rest of your code. Same
/v1/chat/completionsshape, same SDKs. - Requests never leave the Mac. There is no per-token bill, no rate limit, and no account.
- It is a Pro feature, and it works with every tier you have downloaded.
Most "local AI" guides stop at a chat window. That is fine until you have code that already calls an API, and rewriting it is the whole cost. The useful version of local AI is the one your existing code can point at.
Why an OpenAI-compatible endpoint matters
The OpenAI request format became the de-facto standard: the SDKs, the frameworks, the tutorials and most internal tooling assume it. Anything that speaks it inherits an ecosystem for free.
So the fastest way to move a workload off a metered cloud API is not to rewrite it — it is to keep the code and move the endpoint. That is what a local OpenAI-compatible server is for.
Turn it on
- Install Outlier — one signed, notarized
.dmg. No terminal, no Docker. - Download a model tier. Core 27B is the everyday choice; Nano 4B is the lightest.
- Enable the API server in Settings. It binds to localhost only.
- Point your client at it and keep the rest of your code as it is.
Because it is bound to localhost, nothing is exposed to your network by default — the server is reachable by programs on that Mac and nowhere else.
What you give up, and what you don't
Honestly: you give up frontier-model quality. A 27B model on a laptop is not GPT-5. On MMLU our Core tier measures 89.5% (n=200, greedy, 2026-08-09) — strong for its size, not state of the art.
What you gain is everything the metered model can't offer: no per-token cost, no rate limit, no outage, no retention question, and it keeps working on a plane. For batch jobs, evals, local tooling, and anything touching code you can't send to a third party, that trade is usually the right way round.
Things worth knowing
- It is not a public endpoint. Localhost binding is the point; treat exposing it to a LAN as a decision, not a default.
- Streaming works, so token-by-token UIs behave the way they do against the cloud.
- Tool calling works across the tiers that support it, which is what lets agent frameworks drive it.
- The model is whichever tier you loaded. Switching tiers changes the answer quality and the RAM it needs.
Common questions
Can I use the OpenAI Python SDK with a local model?
Yes. That is the point of an OpenAI-compatible server: you keep the SDK and change the base URL to your local endpoint. Chat completions, streaming and tool calls follow the same shapes.
Does this cost anything per request?
No. Inference runs on your own Apple Silicon chip, so there is no per-token charge and no usage cap. You pay for the app, not for the tokens.
Is my data sent anywhere?
No. The server runs on your Mac and binds to localhost, so requests are handled on the machine. Nothing is uploaded for inference.
Which models can it serve?
Any tier you have downloaded, plus models you import yourself. Core and Code 27B are the strongest general choices; Nano 4B is the lightest.
Try it on your own Mac
One signed, notarized download. No account, no token bill, and it keeps working with the Wi-Fi off.
Get Outlier for Mac