Point any app at a local LLM on your Mac (OpenAI-compatible endpoints)
Most apps that grew an "AI" feature in the last two years talk to one of a handful of cloud APIs, and almost all of them speak the same dialect: the OpenAI Chat Completions format. That one detail is the reason you can pull the cloud out and run the whole thing locally on a Mac without the app ever noticing. Here is the trick, why it works, and the gotchas that bite. The one interface everything agrees on OpenAI's /v1/chat/completions endpoint became the de facto standard. So when an app lets you "use your own key" or "set a custom base URL," it is almost always going to POST to {base_url}/chat/completions with a JSON body of messages and read back the same shape. It does not care what is on the other end, only that the response matches. Local runners leaned into this. Both popular Mac ones expose exactly that endpoint: Ollama serves an OpenAI-compatible API at http://localhost:11434/v1 (its native API lives on /api , but the /v1 path speaks the OpenAI dialect). LM Studio has a built-in server you switch on from the Developer tab, serving on http://localhost:1234/v1 . So "make this app local" usually reduces to: point its base URL at one of those, put any non-empty string where it wants an API key, and pick a model you have pulled. The 60-second version Ollama: brew install ollama # or the .dmg from ollama.com ollama serve & # server on :11434 ollama pull llama3.1:8b # pull a model once Confirm it speaks OpenAI: curl http://localhost:11434/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "llama3.1:8b", "messages": [{"role": "user", "content": "say hi in 3 words"}] }' If that returns a choices[0].message.content , any OpenAI-compatible client can use it. In the app, set: Base URL: http://localhost:11434/v1 API key: ollama (or literally anything; it is ignored) Model: llama3.1:8b LM Studio is the same idea with a GUI: load a model, toggle the server on, and use base URL http://localhost:1234/v1 . Pointing real tools at it The pattern shows up