Skip to content
HomeTechOps

Mac

Mac mini as a local AI server: which chip and how much RAM

Size a Mac mini for local LLMs (Ollama, LM Studio, MLX): M4, M4 Pro, or the new M6 / M5 Pro, 16 to 64GB, the macOS GPU memory ceiling, and the always-on settings.

Problem summary

I'm here because I want a Mac mini that sits on a shelf and answers my phone, my laptop, and my home automations with a local model, no per-token bills and no cloud. The buying question is the only one that matters: which chip and how much memory, because on Apple silicon the model must fit in unified memory or it does not run, and memory bandwidth, not core count, decides how fast tokens come out. Rule of thumb: a 4-bit model needs roughly 0.55 to 0.6 GB per billion parameters (a 35B model is about 20 GB), macOS only lets the GPU pin about two thirds to three quarters of RAM by default, and you need 6 to 8 GB left over for the OS and context. That makes 16 GB a 7 to 9B box, 24 GB a 14B box, 48 GB the sweet spot for 30-class models, and 64 GB the minimum for a 70B model at 4-bit. Apple's new Mac mini (announced 25 August 2026, ships 22 September with macOS 27) changes the speed but not the arithmetic: M6 is 16 to 32 GB at 170 GB/s, M5 Pro is up to 64 GB at 307 GB/s. Then make it a server: never sleep, restart after power loss, unlock FileVault over SSH, run the model server under launchd, and reach it over Tailscale rather than an open port.

Operator snapshotEvidence first
First proof

Compute the model's memory need: 4-bit file size + 6 to 8 GB OS + context.

Screen to open

sysctl iogpu.wired_limit_mb hw.memsize

Expected signal

The total sits comfortably under the Mac's GPU ceiling (about 65 to 78 percent of RAM).

Stop boundary

Stop before buying a base-chip 16 GB mini for a 30B model.

Layer path

1On Apple silicon the CPU and GPU share one pool of unified memory. A model either fits in that pool or it does not run properly; there is no graphics-card upgrade later. So the purchase is a memory decision first: model file size at 4-bit (about 0.55 to 0.6 GB per billion parameters) plus 6 to 8 GB for macOS plus context headroom.
2Two speeds matter and they come from different places. Token generation is bound by memory bandwidth (M4 120 GB/s, M6 170 GB/s, M4 Pro 273 GB/s, M5 Pro 307 GB/s), so a Pro chip generates roughly 1.8x faster than a base chip on the same model. Prompt processing is compute-bound, which is where the Neural Accelerators in the M5 Pro and M6 GPUs help.
3macOS caps the memory the GPU may pin at roughly 65 to 78 percent of RAM (Metal's recommended working set). Inference engines treat this as a hard ceiling, so 'it has free memory but will not load' is the ceiling, not a bug. It can be raised per session with a sysctl, at the cost of system headroom.
4A model server is only a server if it survives a power cut unattended: never sleep, auto power-on, FileVault unlock over SSH (macOS 26+), the server under launchd, and access over Tailscale rather than an open port, because Ollama and LM Studio ship without authentication.
Runbook

Step-by-step runbook

Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.

1

Size the model

Check: Pick the largest model you will run; total its 4-bit size + 6 to 8 GB + context.

Expected result: A memory target in GB.

If not: If undecided, size for the next class up.

2

Pick the configuration

Check: 16 GB: 7 to 9B. 24 GB: 14B. 48 GB: 30-class and 35B MoE. 64 GB: 70B at 4-bit. Pro chips for 48 and 64 GB; the new M5 Pro adds bandwidth and Neural Accelerators.

Expected result: A specific Mac mini configuration.

If not: Above 64 GB, buy a Mac Studio instead.

Safe stop: Stop before buying a base-chip 16 GB mini for a 30B model.

3

Install and measure

Check: Install Ollama or LM Studio (MLX engine), load the model, check `the "See where a running model lives" command below` or the runtime badge, note tokens per second and memory pressure.

Expected result: Model fully on the GPU, green memory pressure.

If not: Smaller quantization or context; raise the wired limit only for a near miss.

4

Make it a service

Check: Run the server under launchd (`the "Run the model server as a launchd service" command below`, or a LaunchDaemon); set the host binding for LAN access.

Expected result: The API is up after a reboot with no login.

If not: Convert Terminal or login-item starts to launchd.

5

Make it survive power loss

Check: Never-sleep, `pmset autorestart 1`, Remote Login on for FileVault SSH unlock, then pull the plug and watch it recover.

Expected result: It boots, unlocks, and answers on its own.

If not: Follow the auto power-on and FileVault SSH pages.

6

Connect clients privately

Check: Tailscale on the mini and your devices; point apps and Home Assistant at the tailnet address; no router forwards.

Expected result: Chat from anywhere with the API reachable only by your devices.

If not: If a forward exists, remove it now.

Decision tree

Decision tree

If: You want a capable assistant for chat, summaries and small coding help, budget-first.

Then: 7 to 9B models at 4-bit are the target; 16 GB is enough, 24 GB is comfortable.

Action: Mac mini M6 16 GB (or 24 GB M4 Pro if discounted); Ollama or LM Studio with MLX.

If: You want 30-class or 35B mixture-of-experts models with headroom for context and other apps.

Then: Around 20 GB for the model plus OS plus context lands at 48 GB.

Action: Mac mini with M5 Pro (or M4 Pro) at 48 GB.

If: You want a 70B model at 4-bit.

Then: About 40 GB of weights plus OS plus context needs 64 GB, and it will still be bandwidth-limited.

Action: Mac mini M5 Pro 64 GB, and accept modest tokens per second; above that, a Mac Studio.

If: A model refuses to load although Activity Monitor shows free memory.

Then: The GPU wired-memory ceiling, not free RAM, is the limit.

Action: Drop a quantization level or shorten context first; for a near miss, raise `iogpu.wired_limit_mb` for the session.

Safe stop: Stop before setting the limit near 100 percent of RAM; leave 4 to 6 GB for macOS or the machine becomes unstable.

If: The mini stays dark or unreachable after a power cut.

Then: Sleep, missing auto power-on, or FileVault waiting at the pre-boot screen.

Action: pmset sleep 0 and autorestart 1; Remote Login on for the macOS 26 SSH unlock; server under launchd.

Evidence

Evidence table

SymptomEvidence to collectLikely layerNext action
Model fails to load; free memory looks sufficient.`sysctl iogpu.wired_limit_mb hw.memsize` and the engine's 'recommendedMaxWorkingSetSize' log line.GPU wired-memory ceiling.Smaller quant/context, or raise the limit per session.
Tokens crawl at a few per second.`ollama ps` shows a CPU/GPU split, or LM Studio shows the GGUF runtime instead of MLX.Model not fully resident on the GPU, or wrong engine.Fit the model entirely in memory; reload under MLX.
Long pause before the first token, then normal speed.Prompt length and chip class.Compute-bound prompt processing on a base chip.Shorter prompts, or a Pro chip with Neural Accelerators.
API works at home, unreachable away; or reachable by strangers.Server host binding and router port-forward rules.Network exposure, not the model.Bind to LAN/tailnet, remove forwards, use Tailscale.
Mini shows the FileVault password screen after a power cut.Remote Login state; macOS version.FileVault pre-boot with no SSH unlock configured.Enable Remote Login (macOS 26+) and unlock over SSH; see the dedicated page.
Reference

Commands and settings paths

Read the GPU memory ceiling and installed RAM

sysctl iogpu.wired_limit_mb hw.memsize

Where: Terminal on the Mac mini.

Expected: wired_limit_mb 0 (default) and hw.memsize in bytes; plan on about 65 to 78 percent of hw.memsize for models.

Failure means: A non-zero wired_limit_mb means someone raised it; check it is not close to hw.memsize.

Safe next step: Reset with `sudo sysctl iogpu.wired_limit_mb=0` if the system feels starved.

Raise the ceiling for one session (near-miss models only)

sudo sysctl iogpu.wired_limit_mb=<MB, leaving at least 4 to 6 GB for macOS>

Where: Terminal on the Mac mini, before starting the model server.

Expected: The engine's next load reports a larger recommended working set and the model fits.

Failure means: Yellow or red memory pressure afterwards means you took too much; lower it.

Safe next step: Prefer a smaller quantization or shorter context; reset to 0 when done.

See where a running model lives

ollama ps

Where: Terminal on the Mac mini (Ollama).

Expected: PROCESSOR shows 100% GPU.

Failure means: Any CPU percentage means the model does not fit in GPU memory and will be slow.

Safe next step: Use a smaller model or quantization, or more memory.

Run the model server as a launchd service

brew services start ollama

Where: Terminal on the Mac mini (Homebrew install).

Expected: Ollama starts at boot without a login session and restarts if it crashes.

Failure means: If it only runs while a Terminal window is open, it is not a service.

Safe next step: Check `launchctl print gui/$(id -u)/homebrew.mxcl.ollama` and the log path Homebrew reports.

Confirm the API is not exposed to the internet

lsof -iTCP:11434 -sTCP:LISTEN

Where: Terminal on the Mac mini.

Expected: Bound to 127.0.0.1 or the LAN address; no matching port-forward on the router.

Failure means: Bound to *:11434 with a router forward means it is public and unauthenticated.

Safe next step: Remove the forward; reach it over Tailscale instead.

Hardware boundary

Hardware and platform boundary

Change only when

  • Your model needs more memory than the mini you own can give the GPU, and you have already tried a smaller quantization and shorter context.
  • You are buying new in autumn 2026: the M6 and M5 Pro Mac mini (22 September) add bandwidth and Neural Accelerators at the same memory tiers.
  • You want 70B-class models daily: 64 GB M5 Pro is the floor, a Mac Studio is the comfortable answer.

Evidence that matters

  • Unified memory size: it decides what runs at all.
  • Memory bandwidth (120 / 170 / 273 / 307 GB/s): it decides tokens per second.
  • Pro-class GPU with Neural Accelerators if long prompts and RAG-style contexts are your workload.
  • 2.5Gb or 10Gb Ethernet if the mini also serves files or Frigate; standard on the new models.

Evidence that does not matter

  • CPU core count beyond the base configuration; inference is memory-bound.
  • Internal SSD size beyond what your models need; models load once, and an external Thunderbolt drive can hold the library.

Avoid

  • Avoid 16 GB for anything beyond 9B models; there is no upgrade path.
  • Avoid leaving the wired-memory limit raised on a shared machine.
  • Avoid exposing the API port to the internet; use Tailscale.
  • Avoid a laptop as the always-on box; lid-close sleep and battery wear make the mini the better server.

Related tool/checklist

Use the linked tool when you need a guided plan from your exact symptoms instead of a static checklist.

NAS setup planner

Related problems

Last reviewed

2026-09-06 · Reviewed by HomeTechOps. Written for the September 2026 Mac mini refresh (M6 and M5 Pro announced 25 August, shipping 22 September with macOS 27) and the wave of Mac-mini-as-local-AI-server discussion that followed. The page keeps Apple's own numbers (configurations, bandwidth, idle power) separate from practitioner rules (GB per billion parameters, the 65 to 78 percent GPU ceiling, Ollama's README minimums, ModelPiper's measured Metal working set on macOS 26.5), and treats iogpu.wired_limit_mb as the unsupported, per-session knob it is. The always-on half reuses the site's tested auto-power-on and FileVault-over-SSH runbooks rather than repeating them. No model is recommended by name; examples are dated and labelled as examples.

Sources/assumptions

  • Apple configurations and bandwidth figures are from Apple's Mac mini (2024) tech specs and Apple's 25 August 2026 newsroom announcement of the Mac mini with M6 and M5 Pro (availability 22 September 2026). Idle power (4 W M4, 5 W M4 Pro) is from Apple's Mac mini power consumption page; new-model power figures were not published at the time of writing.
  • The 0.55 to 0.6 GB per billion parameters rule for 4-bit models, the 6 to 8 GB macOS overhead, and the 65 to 78 percent default GPU wired-memory ceiling are practitioner measurements (Ollama's README minimums of 8 GB for 7B, 16 GB for 13B, 32 GB for 33B; ModelPiper's measured Metal working-set on macOS 26.5) rather than Apple statements; verify on your own machine with `sysctl iogpu.wired_limit_mb hw.memsize`.
  • Model names and sizes (a 4-bit 35B mixture-of-experts at about 20 GB, a 4B-class model at about 2.4 GB) are examples from a September 2026 published setup, not recommendations; models change monthly.
  • Raising `iogpu.wired_limit_mb` is an undocumented, unsupported Apple setting. It is reversible (set 0 or reboot) but Apple may change its behaviour.

Source-backed checks

HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.

Apple Newsroom: Apple unveils a more powerful Mac mini featuring the all-new M6 and M5 Pro (25 August 2026)Used for the new Mac mini configurations and bandwidth (M6: 16GB standard, up to 32GB, 170GB/s, Neural Accelerators in every GPU core; M5 Pro: up to 64GB, 307GB/s, up to 18-core CPU / 20-core GPU, Thunderbolt 5), Wi-Fi 7 and 2.5Gb Ethernet standard, Apple's LM Studio prompt-processing claims, and the 22 September 2026 availability with macOS 27.Apple Support: Mac mini (2024) - Tech SpecsUsed for the M4 (120GB/s) and M4 Pro (273GB/s) memory bandwidth and the shipping memory configurations of the 2024 Mac mini.Apple Support: Mac mini power consumption and thermal output (BTU) informationUsed for measured idle and maximum wall power: 4W idle / 65W max for the M4 Mac mini and 5W idle / 140W max for the M4 Pro (64GB) Mac mini.Ollama README (GitHub)Used for Ollama's stated minimums (8GB RAM for 7B, 16GB for 13B, 32GB for 33B models at the default 4-bit quantization), the default port 11434, and `ollama ps` for checking whether a model runs on GPU or CPU.LM Studio Blog: the unified multi-modal MLX engine architectureUsed for LM Studio's Apple-silicon MLX engine (built on mlx-lm) as the faster path versus generic GGUF, and its local OpenAI-compatible server.Apple Machine Learning Research: Exploring LLMs with MLX and the Neural Accelerators in the M5 GPUUsed for MLX's use of unified memory (CPU and GPU without copies) and for the role of GPU Neural Accelerators in speeding prompt processing (compute-bound) as distinct from bandwidth-bound token generation.ModelPiper: iogpu.wired_limit_mb on Mac, raising the Metal memory ceiling (measured on macOS 26.5)Independent measurement used for the default GPU wired-memory ceiling (Metal recommended working set ≈ 78% of 32GB on an M2 Max; commonly quoted as 65–75%), the `sysctl iogpu.wired_limit_mb` session override, the advice to leave 4–6GB for macOS and reset with =0, and that the setting changes what fits, not speed.Apple Support: What's new for enterprise in macOS Tahoe 26 (KB 124963)Primary source for the macOS Tahoe 26 change that lets FileVault be unlocked over SSH after a restart when Remote Login is enabled and the network is up — the fix for headless Macs that previously needed physical access at the login screen. Apple points to the apple_ssh_and_filevault manual page for detail.Apple Developer: Creating Launch Daemons and AgentsUsed for the launchd model — LaunchDaemons run at boot with no login session (right for headless services), LaunchAgents run per-user and need a login session.

Get the deal & firmware alerts

Home Stack Field Notes: NAS deals, firmware changes worth acting on, restore-test reminders, and new decision guides — plus the capacity & backup sizing cheatsheets from our calculators. Unsubscribe anytime.