Skip to content

System requirements

The short answer: any Apple Silicon Mac running macOS 14 or later, with enough free disk for your retention plan.

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.

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.

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.

  • 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.

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.