Back to Local voice AI

Local voice AI / Guide 4 of 7

Run a local language model

Expose a local chat endpoint with LM Studio or Ollama.

Choose and start the model server

NautPin's AI cleanup talks to any OpenAI-compatible chat endpoint. The two best options on macOS are LM Studio and Ollama. Pick whichever fits your style — NautPin doesn't care which one runs underneath, as long as the API is reachable.

LM Studio (GUI-first, recommended for first-time setup)

Download LM Studio from their site. Drag the app into /Applications.

In LM Studio:

  1. Search for a compatible instruction-tuned model (or any small instruction-tuned model — Qwen 2.5 7B Instruct is another good pick). Download it.
  2. Go to the Developer tab (the </> icon in the left sidebar).
  3. Load the model. Toggle the API server to Running. Note the port — default is 1234, but check.

Verify the API works:

bash

curl http://127.0.0.1:1234/v1/models | head -c 300

You should see your loaded model's name in the response.

Endpoint to use in NautPin: http://127.0.0.1:1234/v1

Ollama (CLI-first, lighter on resources)

Same idea but headless and scriptable. No GUI, no Electron, fewer moving parts. Good fit if you're comfortable on the terminal or already use Ollama for other projects.

bash

brew install ollama
brew services start ollama          # auto-starts on login
ollama pull gemma3:4b               # or qwen2.5:7b, llama3.2:3b, etc.

Verify:

bash

curl http://127.0.0.1:11434/v1/models

You should see your pulled model. Ollama exposes the OpenAI-compatible API at /v1 automatically — no separate "developer mode" toggle.

Endpoint to use in NautPin: http://127.0.0.1:11434/v1

Which to pick

LM StudioOllama
InterfacePolished GUICLI + tray icon
Setup ease (first time)EasierSlightly steeper
Resource footprintHeavier (GUI)Lighter
MLX support on Apple SiliconYes (best performance)Yes
Best forBrowsing/trying models, beginnersHeadless servers, scripted use

For most readers, LM Studio first, swap to Ollama later if you want lighter overhead. Both can run local models. Both expose the same API shape, so NautPin's config only changes a single URL when you migrate.

It’s working if

The model endpoint returns the model you loaded. Keep that exact model ID and base URL for the NautPin configuration.