Local Models with Ollama and LM Studio

Run s1ft summaries on your own Mac with Ollama or LM Studio. No API key, no cloud, and a hardware guide for picking a model size that fits your RAM.

s1ft can summarize your meetings with a model that runs on your Mac. Nothing leaves the machine. You do not need an API key. Two presets in the AI Engine tab do this for you: Ollama (local) and LM Studio (local).

This article covers the local path only. For the shared steps, such as the AI Engine tab, verification, and the Summary, see AI Engine Setup.

What you need

  • A Mac with Apple Silicon and at least 16 GB of RAM. See Hardware guidance below for what each RAM size can run.
  • Ollama or LM Studio installed.
  • A model downloaded into that app. s1ft does not download models for you.

Transcription is separate from this. s1ft always transcribes on your Mac with WhisperKit, whatever engine you pick for summaries.

Step 1: Pull a model first

s1ft lists the models your local server already has. If the server has none, the list is empty. Download a model before you add the engine.

Ollama

  1. Install Ollama and open it.
  2. Open Terminal.
  3. Pull a model. For example:
ollama pull llama3.2

Ollama serves its API at this address by default:

http://localhost:11434/v1

LM Studio

  1. Install LM Studio and open it.
  2. Download a model inside LM Studio.
  3. Start the local server inside LM Studio.

LM Studio serves its API at this address by default:

http://localhost:1234/v1

Keep the app running. s1ft calls this address each time it fetches the model list, verifies the engine, or summarizes a meeting.

Step 2: Add the engine in s1ft

  1. Open the s1ft menu bar popup and press Cmd + , to open Settings.
  2. Click the AI Engine tab.
  3. Click Add engine.
  4. Click Ollama (local) or LM Studio (local). Both rows read “Runs on this Mac — no key needed”.

The sheet is titled Set Up Ollama (local) or Set Up LM Studio (local). There is no key field. s1ft fetches the model list from your local server as soon as the sheet opens. While it waits, the sheet shows “Fetching models… (up to 10 s)”.

  1. Choose a model from the Model picker.
  2. Click Save & Verify.

s1ft sends a fixed one-line probe to the engine. The probe contains no meeting content. When it succeeds, the engine row shows Verified with the date. Click the circle beside the row to make it the active engine.

If the model list cannot be loaded

If your server is not running, or it returns no models, the sheet shows an orange notice: “Couldn’t reach Ollama (local) — enter a model name manually.” A text field named Model appears in place of the picker, with the example llama3.2.

  1. Type the exact model name as your server knows it, for example llama3.2.
  2. Click Save & Verify.

Verification still needs a running server. If it fails, see Troubleshooting.

Where the model list comes from

The two local presets use the OpenAI-compatible protocol. s1ft asks your server for its model list at the /models path under the base URL, so http://localhost:11434/v1/models for Ollama and http://localhost:1234/v1/models for LM Studio. The request carries no authorization header, because no key exists. s1ft reads one page and waits up to 10 seconds.

The two local presets ship with no curated model list. The live list from your server is the only source. When that call fails, s1ft falls back to the text field described above.

The base URL is fixed for each preset. s1ft stores no key for a local engine, and nothing is written to your Keychain.

Local engines show no provider consent sheet, because no meeting content leaves your Mac. They still require the AI-processing acknowledgment from onboarding. Without it, s1ft does not activate the engine.

A server on another port or another Mac

If your runner listens on a different port, or on another machine in your home or office network, use Advanced / Custom… instead of a preset. Set the kind to Local model and the protocol to OpenAI-compatible, then enter the base URL and the model name. To load the server’s model list, enter the base URL and click Fetch models. If the fetch fails, the form shows a message with the host name, and you can type the model name by hand. See Advanced / Custom in AI Engine Setup.

s1ft allows a plain http:// address for a local engine only when the host is localhost or a private-network address, such as 192.168.x.x, 10.x.x.x, or a .local name. A public host must use https://.

Hardware guidance

These numbers come from the s1ft team’s hardware notes for local AI. They describe the summarization model only; transcription runs on your Mac in every setup.

Model size sets summary quality

Model size determines summary quality. The RAM below is for the model alone.

Model sizeRAM for the modelSummary quality
7-8B (for example Qwen 3 8B)about 6-7 GBBasic bullet points, misses nuance
14B (for example Qwen 3 14B, Phi-4)about 10-12 GBGood. Captures action items and structure
32B (for example Qwen 3 32B)about 22-24 GBExpert-level summaries
70B (for example Llama 3.3 70B)about 42-48 GBLittle gain over 32B for summarization

For meeting summaries, 14B is the minimum for production quality. 32B is the sweet spot.

Which Mac for which model

  • Minimum: any Apple Silicon Mac with 16 GB of RAM. Runs the speech model and an 8B summarization model one after the other, not at the same time. Expect acceptable summaries for simple meetings. RAM is tight.
  • Recommended: Apple Silicon with 24-48 GB of RAM. Runs the speech model and a 14B to 32B summarization model loaded together. Expect good to excellent summaries. A 48 GB M4 Pro runs a 32B model comfortably.
  • Premium: M4 Max with 64 GB or more. Runs 70B models, or 32B at a higher quantization. More than most users need.

Since late 2024, Apple ships every Mac with at least 16 GB, so every new Mac meets the minimum tier.

Quantization

Most local models are offered in several quantizations. Q4_K_M gives the best quality for its RAM on Apple Silicon. Q5_K_M needs 15-20 percent more RAM for a marginal quality gain. Add 2-5 GB on top of the model for the context cache; longer meetings need more.

Memory bandwidth matters more than chip age

Generation speed is limited by memory bandwidth, not by CPU generation. A used M1 Max with 64 GB (400 GB/s) generates tokens faster than a new M4 Pro with 48 GB (273 GB/s).

ChipMemory bandwidthRelative speed
M168 GB/s1.0x
M2 / M3 base100 GB/s1.3-1.4x
M3 Pro150 GB/s1.5x
M1 / M2 Pro200 GB/s2.0x
M4 Pro273 GB/s2.3x
M1 / M2 / M3 Max400 GB/s3.3x
M4 Max (16-core)546 GB/s4.5x

Troubleshooting

The sheet says “Couldn’t reach Ollama (local)” or “Couldn’t reach LM Studio (local)”. The server is not running, or it is not on the default port. Start the app and try again. For a non-default port, use Advanced / Custom.

The engine row shows “Verification failed: provider unreachable”. The server was down when s1ft sent the probe. Start it, then open the row’s … menu and click Verify.

The engine row shows “Verification failed: model unavailable”. The model name does not exist on your server. Pull or download the model, then verify again. If you typed the name by hand, check the spelling.

Summaries are slow or the Mac runs out of memory. The model is too large for your RAM. Pick a smaller model or a lower quantization, using the table above.

A meeting shows “pending — engine needed”. No active, verified engine existed when the meeting was transcribed. The transcript is already on disk. s1ft summarizes it once an engine is active and verified.

What’s next