Mac Studio Local AI Workbench
A documented local AI build on Apple Silicon, from first boot to a restorable baseline.
Dated build record; current readiness unverified. May 30 benchmark recorded; August 2 report leaves end-to-end RAG unverified.
Status and source
Availability: Published build journal. Maturity: Dated build record; current readiness unverified. Evidence: May 30 benchmark recorded; August 2 report leaves end-to-end RAG unverified. Delivery: unknown. Source record (reviewed 2026-09-07).
About this build journal
Reading this journal: Hardware, service counts and timeline entries below describe the May 2026 build, not a fresh audit of today’s workstation. The May 30 benchmark record reports six Ollama models tested with five strict output-only prompts: zero outright failures, with formatting issues still recorded. The August 2 readiness report found local services responding but left document ingestion, retrieval and citation through RAG unverified. Earlier pending work is retained below as history.
/Volumes/OKH-Local/05_Research_Vault/mac-studio-setup_DONE_2026-05-12.tar.gz
2026-05-13 post-baseline: Ollama plist corrected, Open WebUI updated to latest, Edge PWA resolved. Project page published.
2026-05-27/28: OpenClaw installed, agent named Larry, MEMORY.md seeded, SearXNG web search live.
2026-05-27 through 2026-05-30: Journal reports OpenClaw/Larry online, RAG components deployed, strict benchmark completed and architecture diagrams published. Component deployment does not establish a working retrieval workflow.
What This Is Worth
In May 2026, a Facebook Marketplace listing offered an M1 Mac Studio 32GB with "PageSpace AI pre-installed" for $7,500. PageSpace is open-source and free. An M1 Mac Studio 32GB sells for $600–$900 on the secondary market.
This workbench runs on a Mac Studio M4 Max, three to four generations newer, with substantially more memory and compute. It runs 29 models across three inference runtimes. It connects to 11 live MCP servers. It has a documented operating model, governance policies, restore scripts, verified benchmarks, and an offsite backup strategy.
The $7,500 listing was selling the box. This build is the operating model.
Status Board
q8_0 KV cache/Volumes/OKH-Local/07_Local_LLMs/ollama/modelslocalhost:3000/Volumes/OKH-Local/07_Local_LLMs/huggingface-cache.zprofileTimeline
2026
Hardware planning and research
2026
Hardware unboxed, OS baseline
2026
Development foundation
.zprofile. Generated GitHub SSH key (ed25519), added as "Mac Studio M4 Max", verified with Hi OKHP3!.
eval lines in .zprofile from paste issue; cleaned to single line.
2026
Ollama install and first models
OKH-Local. Configured OLLAMA_MODELS, OLLAMA_FLASH_ATTENTION, OLLAMA_KV_CACHE_TYPE in .zprofile and Homebrew plist. Pulled phi4:14b, gemma3:12b, gemma3:27b, codestral:22b.
OLLAMA_MODELS env var not picked up by Homebrew service; required editing homebrew.mxcl.ollama.plist directly. Models initially landed in ~/.ollama: corrected with mv and manifest cleanup.
2026
Model collection and LM Studio
2026
Open WebUI, VSCode, and MCP foundation
localhost:3000. Installed VSCode 1.119.0 + Continue.dev v1.2.22. Configured Continue.dev with all local Ollama models (Codestral as primary autocomplete). Installed Node.js 26.0.0 for MCP server support.
2026
MCP servers and app ecosystem
claude_desktop_config.json with Notion and GitHub MCP. Used full paths to fix PATH issues for background service. Pulled GitHub MCP via Docker. Verified 11 MCP servers connected in Claude Desktop: Notion, GitHub, PageSpace, Mermaid Chart (enterprise), Google suite (Calendar/Gmail/Drive), Microsoft 365, and additional business tool integrations.
2026
App ecosystem and Edge PWAs
/Applications/. 30+ Edge PWAs. All brand properties pinned as apps.
sudo rm -rf.
2026
VSCode extension audit across machines
2026
Git workspace, OneDrive sync, and repos
okhp3 alias in .zprofile. Updated VSCode workspace file to OKH root. Updated all 28 repo SSH remotes from HTTPS to SSH via batch script. Installed mlx-lm 0.31.3: verified at 139 tok/s on Phi-4 mini.
.git/index with file locks during initial sync. Decision: skip for now (low risk: commits come from Replit/Claude Code/Codex/Mac).
2026
Normalization, benchmarking, and baseline archive
models/models path from UI misconfiguration. Created compatibility symlinks. Externalized HuggingFace cache, authenticated as okhp3. Created model inventories, benchmark workspace, restore script, and verification script. Benchmarked llama3.1:8b and phi4:14b across 5 tests. Created known-good baseline documentation and archived closure package.
2026
Post-baseline hardening and publication
/Volumes/OKH-Local/07_Local_LLMs/ollama/models. Edited plist directly, restarted service, confirmed all 6 models visible. Updated Open WebUI (stopped and removed old container, pulled latest image, recreated container with original run parameters. The v0.9.5 update banner resolved. Resolved Edge PWA localhost authentication). Open WebUI pinned as standalone Edge app. Confirmed access at localhost:3000 without login prompt. Project page published to overkillhill.com.
2026
OpenClaw installation
2026
Larry comes online
2026
RAG stack + LM Studio consolidation
VECTOR_DB=qdrant environment variable. Consolidated LM Studio model storage (22 models across 3 directories normalized under models/. Configured energy saver) Mac stays awake permanently.
{"status":"ok"}. Open WebUI wired to Qdrant. All smoke tests passed.
2026
Benchmarks + architecture diagrams
Meet Larry
Larry is an OpenClaw autonomous agent running on the Mac Studio M4 Max. He doesn't wait for a prompt. He runs in the background, starts at login, and handles the zero-cost tier of the Council of AIs workflow: background tasks, Apple Notes, Reminders, file operations, planned RAG queries, scheduled jobs, and first-pass summarization.
The baseline stack (Ollama, LM Studio, Open WebUI, mlx-lm) is infrastructure. Open WebUI is a chat interface. You open it, you type, you get a response. Larry is something different.
The original Larry the Lobster (SpongeBob's friend from Bikini Bottom) was the lifeguard at Goo Lagoon. He was the only thing standing between the residents and a watery grave. This Larry has a similar mandate: protect the workflow from token waste and busywork.
He introduced himself on first boot with: "Larry's got it."
| Open WebUI | Larry (OpenClaw) | |
|---|---|---|
| What it is | Chat interface | Autonomous agent |
| How it works | You send a message | Works in background |
| Model | Any local Ollama model | gemma3:27b (131k context) |
| Skills | N/A | 28 eligible (Notes, GitHub, Notion, web search, more) |
| Starts at | Manual | Login (LaunchAgent) |
| Best for | Interactive queries | Background tasks, automation |
Model Inventory
| Model | Format | Size | Runtime | Use |
|---|---|---|---|---|
phi4:14b |
GGUF | 9.1 GB | Ollama | Fast reasoning, instruction following. Daily driver. |
gemma3:12b |
GGUF | 8.1 GB | Ollama | General purpose, mid-tier |
gemma3:27b |
GGUF | 17 GB | Ollama | Flagship general, heavy reasoning. Daily driver (quality). |
codestral:22b |
GGUF | 12 GB | Ollama | Code generation, Continue.dev autocomplete |
mistral-small3.1:24b |
GGUF | 15 GB | Ollama | General purpose, fast |
llama3.1:8b |
GGUF | 4.9 GB | Ollama | Lightweight utility, bulk tasks |
gemma-4-E4B-it |
GGUF Q4_K_M | 6.33 GB | LM Studio | Multimodal (image input), fast MoE |
gemma-4-E2B-it |
GGUF | ~5 GB | LM Studio | Ultra-light, fastest responses |
gemma-4-26B-A4B-it |
GGUF | ~16 GB | LM Studio | MoE, 4B active params, larger knowledge |
Phi-4-mini-instruct-4bit |
MLX 4-bit | 2.18 GB | mlx-lm | Direct MLX inference: 139 tok/s on Apple Silicon |
Note: llama3.3:70b (42 GB) was attempted and removed; it exceeds the 36 GB ceiling with apps running.
Model Selection Policy
Western-lab models only. Every model in this workbench comes from a Western-lab open-weight release: Meta (Llama), Google (Gemma), Mistral AI (Mistral, Codestral), and Microsoft (Phi).
This is a deliberate policy, not a default. Chinese cloud AI services operate under PRC data law. Open-weight models from any lab are architecturally isolated once downloaded (weights are inert files with no network access) but maintaining a clean Western-only boundary is simpler to reason about and easier to defend.
Models excluded: Any cloud-connected Chinese AI service. DeepSeek, Qwen, and similar open-weight releases are technically capable but fall outside this policy's boundary.
Benchmark Snapshot
Historical May 12 loose/default-prompt results for two Ollama models. The dated benchmark summary preserves this table and the May 30 six-model strict-prompt pass. These small task samples do not establish general reliability; this page review did not rerun them.
| Test | llama3.1:8b | phi4:14b |
|---|---|---|
| Exact instruction following | ✅ Pass | ✅ Pass |
| Voice transcript cleanup | ⚠️ Functional (formatting issue) | ✅ Pass |
| YAML generation | ❌ Fail | ❌ Fail |
| Architecture summary | ⚠️ Functional (semantic flaw) | ⚠️ Partial fail |
| Mermaid diagram generation | ❌ Fail | ⚠️ Partial fail |
Conclusion: In this May 12 sample, neither model met all structured-output criteria under simple prompting. A strict prompt benchmark pass was recommended at that point and recorded on May 30. gemma3:12b, gemma3:27b, mistral-small3.1:24b, and codestral:22b were not tested in this May 12 table; all four appear in the May 30 record.
How It's Built: Three Views
Three diagrams showing the same workbench from three angles: traffic flow, capability map, and physical deployment. All rendered live from Mermaid source.
Token Routing: How Requests Flow
Every query enters through one of the four input surfaces. Local models handle zero-cost inference; cloud models are reserved for precision tasks where cost is justified.
Capability Map: What the Workbench Can Do
The full capability surface: local inference, protocol orchestration, retrieval, autonomous operation, and the external integrations that complete the Council of AIs workflow.
Physical Architecture: Where Everything Lives
Hardware topology: what runs on internal SSD, what runs on the external NVMe, and how all services bind together at runtime.
The Operating Model
The Mac Studio M4 Max is not a replacement for frontier AI. It is the zero-cost inference tier at the bottom of a deliberate token routing hierarchy.
The Council of AIs workflow pairs Claude and ChatGPT as blind-iterating collaborators in Notion, uses Replit for execution against locked specs, and GitHub as the versioned source of truth. Every part of that workflow has a cost. Local models handle the parts where cost should be zero: bulk processing, first-pass summarization, RAG queries against personal knowledge, and repetitive validation checks.
Cheap tokens think broadly. Expensive tokens act precisely.
This workbench is what makes that economics work at a $40/month total subscription budget.
Next Phase, as Planned in May 2026
This retained list records the earlier plan. The strict six-model benchmark was subsequently recorded on May 30. The RAG roadmap remains a plan; the August 2 readiness report does not confirm an integrated retrieval workflow. Other items below are not a verified current backlog.
Historical RAG roadmap: The baseline was complete. The proposed next phase was the retrieval layer.
nomic-embed-text + Qdrant + Open WebUI Knowledge will turn this workbench into a local AI that knows the author's actual work: not just its training data. Personal writing, GitHub repos, conversation archives, and workspace exports will be chunked, embedded, and indexed locally. The model will retrieve before it generates.
This is how a generic local AI becomes a genuine second brain.
The sequel picks up the thread: Infusing a Soul gives the stack a voice, honest tools, and an overnight job.
Build Your Own
Everything you need to replicate this stack.
Core Toolchain
AI Runtimes
Storage Architecture
/Volumes/OKH-Local/07_Local_LLMs/ollama/models
/Volumes/OKH-Local/07_Local_LLMs/lm-studio/models
/Volumes/OKH-Local/07_Local_LLMs/huggingface-cache