macOS Native Installation
Native macOS setup with full Metal GPU acceleration for optimal performance.
Tip
π Recommended for macOS β ~10x better performance than Docker via Metal GPU acceleration.
Prerequisites
- macOS 12 Monterey or later
- 8GB+ RAM (16GB+ recommended)
- 10GB free disk space
- Homebrew installed
Quick Start
- Clone and run the setup script:
- Start all services:
- Install agent-cli:
- Test the setup:
What the Setup Does
The setup-macos.sh script:
- β Checks for Homebrew
- β
Installs
uvif needed - β Installs/checks Ollama (native macOS app)
- β Installs Zellij for session management
- β
Installs Whisper and TTS as launchd daemons via
agent-cli daemon install
Services Overview
| Service | Implementation | Port | GPU Support |
|---|---|---|---|
| Ollama | Native macOS app | 11434 | β Metal GPU |
| Whisper | MLX Whisper (via daemon) | 10300 | β Apple Silicon MLX |
| TTS (Kokoro) | Kokoro TTS (via daemon) | 10200 | β Metal GPU (MPS) |
| OpenWakeWord | Wyoming OpenWakeWord | 10400 | N/A |
Note
Whisper and TTS run as launchd daemons via agent-cli daemon install, using MLX and Metal for GPU acceleration on Apple Silicon.
Session Management with Zellij
The setup uses Zellij for managing all services in one session:
Starting Services
Zellij Commands
Ctrl-O d- Detach (services keep running)zellij attach agent-cli- Reattach to sessionzellij list-sessions- List all sessionszellij kill-session agent-cli- Stop all servicesAlt + arrow keys- Navigate between panesCtrl-Q- Quit (stops all services)
Manual Service Management
If you prefer running services individually:
# Ollama (brew service recommended)
brew services start ollama
# Or run in foreground:
ollama serve
# Whisper and TTS are installed as launchd daemons
agent-cli daemon status # Check all daemon status
agent-cli daemon install whisper # Install whisper daemon
agent-cli daemon install tts-kokoro # Install TTS daemon
# Or run in foreground (without daemon):
agent-cli server whisper
agent-cli server tts --backend kokoro
# OpenWakeWord
scripts/run-openwakeword.sh
Intel Macs: prefer Docker or a Linux-style Wyoming Faster Whisper setup; MLX Whisper is Apple Silicon only.
Why Native Setup?
- 10x faster than Docker - Full Metal GPU acceleration
- Better resource usage - Native integration with macOS
- Automatic model management - Services handle downloads
Troubleshooting
Terminal-notifier Popup Issues
- Ensure Settings > Notifications > terminal-notifier > Allow Notifications is enabled.
- For a persistent βListeningβ¦β badge, set the Alert style to Persistent (or choose Alerts on macOS versions that still offer Alert/Banner). This keeps the recording indicator visible while other notifications still auto-dismiss automatically.
Ollama Issues
# Check if Ollama is running
ollama list
# Pull a model manually
ollama pull gemma3:4b
# Check Ollama logs
tail -f ~/.ollama/logs/server.log
Service Port Conflicts
uv/Python Issues
Zellij Issues
# Kill stuck sessions
zellij kill-all-sessions
# Check session status
zellij list-sessions
# Start without Zellij (manual)
# Run each script in separate terminals
Memory/Performance Issues
- Close other apps to free RAM
- Check Activity Monitor for high CPU/Memory usage
- Services will automatically download required models
Alternative: Docker
If you prefer Docker despite performance limitations:
- Docker Setup Guide
- Note: ~10x slower due to no GPU acceleration