System requirements
The short answer: any Apple Silicon Mac running macOS 14 or later, with enough free disk for your retention plan.
macOS versions
Section titled “macOS versions”| Version | Status |
|---|---|
| macOS 14 Sonoma | ✅ minimum |
| macOS 15 Sequoia | ✅ |
| macOS 26 (current) | ✅ |
| macOS 13 Ventura or older | ❌ |
We track current macOS — the newest dot-release of the current major is the canonical platform we test on.
Memory
Section titled “Memory”| RAM | Usable for |
|---|---|
| 8 GB | 8+ cameras / 10 fps detection |
| 16 GB | Comfortable for 8–16 cameras, easily + other apps |
| 24+ GB | More cameras, GenAI descriptions, semantic search, run other memory-hungry apps |
Each ffmpeg decoder is the dominant memory consumer; budget 100– 250 MB per camera for ffmpeg + the detector pipeline. Fregata itself (the Python core, the Swift app, nginx, go2rtc) totals about 1 GB of RAM.
Enrichment models
Section titled “Enrichment models”The table above is a starting point, not the whole picture. Semantic search, face recognition and license plates are each a separate opt-in download — nothing here is fetched until you turn the feature on — and their cost varies a lot by model and size:
| Feature | Model | Download | First-run cost |
|---|---|---|---|
Semantic search — jinav1 (default model) |
large (default size) |
~425 MB | GPU compile, a few seconds |
small |
~345 MB | none (CPU) | |
Semantic search — jinav2 (opt-in, multilingual) |
large |
~1.6 GB, as two GPU artifacts | up to ~10 GB RAM, up to ~10 minutes, once — see below |
small |
~835 MB | none to compile, but not recommended — slow, see below | |
| Face recognition | large (default size) |
~250 MB | GPU compile, a few seconds |
small |
small TFLite download | none (CPU) | |
| License plates | small (default size) |
well under 100 MB | GPU compile, a few seconds |
large |
well under 100 MB | GPU compile, a few seconds |
jinav2 at model_size: large is the one case worth planning around.
Fregata compiles it for Apple’s CoreML the first time you enable
jinav2, not on every restart. That one-time compile can use up to about
10 GB of RAM and take up to about 10 minutes; the process looks idle while it
happens (no GPU activity, no progress indicator) because it’s CPU-bound
compiling the graph, not doing inference. If you don’t specifically need
jinav2’s multilingual embeddings, the default jinav1 model gives you
GPU-accelerated semantic search for a much smaller download with no first-run
spike.
jinav2 at model_size: small avoids that compile cost, but it isn’t a
shortcut worth taking — it runs slower than either jinav1 large or
jinav2 large, and it is far less accurate. See AI Models
for Frigate Enrichments → First-run GPU
compiles for why.
See AI Models for Frigate Enrichments for where each model runs (Apple Neural Engine, GPU, or CPU) and why, and Troubleshooting if a first-run compile or model download seems stuck.
The detector model and the app are around 2 GB combined. Recordings dominate the disk usage:
| Cameras | Per day @ motion-only | 14-day disk budget |
|---|---|---|
| 1 | 4–10 GB | 60–140 GB |
| 4 | 16–40 GB | 250–560 GB |
| 8 | 32–80 GB | 500 GB – 1.2 TB |
| 16 | 64–160 GB | 1–2 TB |
External Thunderbolt SSDs work fine; external USB SSDs work if they’re 3.0 or better. A networked NAS is also a fine choice.
See Recordings & retention for how to dial these numbers up or down.
Network
Section titled “Network”- Cameras on Ethernet if at all possible. RTSP over Wi-Fi works but is sensitive to packet loss; a noisy Wi-Fi → Mac path manifests as detection drop-outs and choppy recordings.
- Mac on Ethernet for 4+ cameras. Multi-stream RTSP plus the HA integration’s MJPEG fan-out can saturate Wi-Fi quickly.
What we don’t run on
Section titled “What we don’t run on”Listed for completeness so you don’t waste time:
- Intel Macs — no ANE.
- iPads / iPhones — wrong app shape; we’d have to rewrite for iOS lifecycle and we’re not going to.
- Linux / Windows — that’s Frigate, the project we’re built on. Use it directly there, it’s excellent!
- Docker on macOS — possible, but nullifies every reason to use Fregata over Frigate. The hardware acceleration paths don’t cross the Hypervisor.framework boundary cleanly.
- A virtualized macOS guest — same problem; ANE access from a guest VM is impossible. Fregata will run, but you lose most of the benefits.