Offline AI on a Mac means a model that runs on the Mac itself, so after a one time download it answers with no internet connection. LM Studio says it can operate entirely offline once you have model files, including chat, chatting with documents and its local server. Ollama runs locally and says it does not see your prompts; set OLLAMA_NO_CLOUD=1 and its cloud models and web search are switched off, leaving local only mode. Jan, Apache 2.0, runs everything locally when you want it to. Pick the model by your Mac's memory: about 8 GB runs a 3b model, and 16 GB a 7b to 9b. Grux OS (MIT) is not a model runner but an agent on top of one: with Ollama there is no Grux account, server or telemetry to reach, and meeting audio is transcribed on device. New mail and calendar events still arrive over the network, as they always do.
| App | License | Offline |
|---|---|---|
| LM Studio | Free; the app is closed source, its lms tool is MIT | Yes, once models are downloaded: chat, documents and the local server |
| Ollama | MIT | Yes; local only mode turns off its cloud models and web search |
| Jan | Apache 2.0 | Yes, everything runs locally when you choose |
| Grux OS | MIT | An agent with no server; with Ollama the model is local too |
brew install ollama
ollama pull qwen3.5:9b # download once, while online
OLLAMA_NO_CLOUD=1 ollama serve # local only: no cloud models, no web search
Ollama also reads the same switch from disable_ollama_cloud in ~/.ollama/server.json; restart it after the change. For which model fits your memory, see which LLM can my Mac run.
Downloading a model, and updating an app, need a connection. So does any hosted model: Grux's README says plainly that a hosted provider sees what you send it, and to run Ollama if that matters. Mail and calendars still sync over the network; an offline model only changes where the thinking happens.
| Claim | Source |
|---|---|
| LM Studio can operate entirely offline once model files are downloaded | LM Studio docs, Offline Operation |
| Ollama runs locally; local only mode with OLLAMA_NO_CLOUD or disable_ollama_cloud | Ollama FAQ |
| Jan runs everything locally when you want it to; Apache 2.0 | Jan README |
| Grux: no account, no server, no telemetry, audio transcribed on device | Grux README, Privacy posture |