Configuration
Fregata’s configuration is upstream Frigate’s config.yml, with a
small set of macOS-specific defaults and one new detector type.
This page is the index of the schema, calling out what’s
different on macOS. The full key-by-key reference lives in the
Frigate documentation,
which we mirror almost entirely.
For a complete, ready-to-edit starter config with detection, recording, snapshots, and live view already enabled, see Add your first camera.
Two ways to change configuration
Section titled “Two ways to change configuration”Since v0.18, nearly every option has a control in the web UI’s
Settings pages, and saving there writes the change into your
config.yml. You can also edit the file yourself. Both change the same
configuration, so use whichever you prefer.
Wherever these docs tell you to change a setting, the step is a box with two tabs: Settings UI (the default) and YAML. Choose YAML once and every box switches with it; the choice is remembered as you move between pages.
Opening Settings
Section titled “Opening Settings”- Open the web UI: choose Open Frigate Web UI (
⌘O) in the menu-bar tray, or go to https://localhost:8971. - Sign in as an admin (the
adminaccount from first-run setup). - Click the gear icon in the web UI’s navigation and choose Settings, or go straight to https://localhost:8971/settings.
The Settings sidebar is grouped, and the docs write paths in the same order, for example Settings → Global configuration → Recording. Most camera pages have a camera selector at the top; settings under Global configuration apply to every camera unless a camera overrides them.
Where each part of config.yml lives in Settings
Section titled “Where each part of config.yml lives in Settings”In config.yml |
In the web UI’s Settings |
|---|---|
detectors (inference backend) |
Fregata (macOS) → Global configuration → Apple Silicon Detector |
detectors, model |
System → Detectors and model |
adaptive_transcoding |
Fregata (macOS) → Global configuration → Adaptive transcoding (every camera), Fregata (macOS) → Camera configuration → Adaptive transcoding (one camera) |
cameras (add, edit, remove) |
Global configuration → Camera management |
cameras.<name>.zones, motion masks, object masks |
Camera configuration → Masks / Zones |
detect, objects, motion, ffmpeg, record, snapshots, review, audio, live, timestamp_style |
Global configuration (defaults for every camera) and Camera configuration (one camera). Each block has a page of its own; the camera-level ffmpeg page is called Streams (FFmpeg). |
go2rtc.streams |
System → go2rtc streams |
mqtt, tls, auth, networking, proxy |
System → MQTT, TLS, Authentication, Networking, Proxy |
database, logger, birdseye, ui, telemetry |
System → Database, Logging, Birdseye, UI, Telemetry |
environment_vars |
System → Environment variables (edit existing entries; add new variables in the tray, see Environment variables) |
semantic_search, genai, face_recognition, lpr, classification, audio_transcription |
Enrichments (one page each) |
notifications |
Notifications |
| Frigate+ model | Frigate+ and System → Detectors and model |
A few things have no control in Settings and stay YAML-only, such as the
go2rtc options other than streams (for example go2rtc.rtsp) and
go2rtc exec: stream sources. The docs mark those boxes config.yml
only.
File location
Section titled “File location”~/Fregata/config/config.ymlThe location is overridable in Settings → Folders → Change Config
Location… in the menu-bar tray. The launcher writes the chosen path into UserDefaults
and exposes it as FRIGATE_CONFIG_DIR to the Python core.
Detectors — coreml only
Section titled “Detectors — coreml only”Fregata ships a single detector type. The fields below are the ones specific to it; the model sub-block follows the standard Frigate shape.
Inference backend
- In the web UI, go to Settings → Fregata (macOS) → Global configuration → Apple Silicon Detector.
- Set Inference backend to Apple Neural Engine (recommended) (the default) or Metal GPU.
- Click Save, then Restart when the page asks.
Model
- Go to Settings → System → Detectors and model. The Detection Model card shows Frigate+ and Custom Model tabs once a Frigate+ API key is set; if you see them, open Custom Model. (The Frigate+ tab is for Frigate+ models.)
- Custom object detector model path shows the bundled model’s path
(it ends in
models/default.onnx, inside Fregata.app); leave it to keep the bundled model. Otherwise enter a file path orplus://<id>. - Set Object detection model input width and height, and Label map for custom object detector for custom (non-Frigate+) models only.
- Under Advanced Settings are Object Detection Model Type, Model Input Tensor Shape, Model Input Pixel Color Format and Model Input D Type.
- Click Save, then Restart when the page asks.
detectors: coreml: type: coreml inference_backend: ane # "ane" (default) | "gpu"
model: path: <optional> # filesystem path or plus://<id>; default = bundled model_type: yolo-generic # yolo-generic | yolox | yolonas | dfine | rfdetr width: 320 height: 320 input_tensor: nchw input_pixel_format: rgb input_dtype: float labelmap_path: <optional> # custom (non-Frigate+) models only; see Detection tuningmodel: is its own top-level block, peer to detectors: —
matches Frigate’s documented convention. The model file path
goes inside this block as model.path. (The Pydantic schema
also accepts per-detector overrides under
detectors.<name>.model and detectors.<name>.model_path, but
those are only useful in multi-detector setups where each
detector runs a different model. For Fregata’s single-detector
default, the top-level form is what you want.)
See Detection tuning for the practical guide to swapping models, choosing a backend, and tuning thresholds.
FFmpeg defaults
Section titled “FFmpeg defaults”Fregata’s macOS ffmpeg presets use VideoToolbox out of the box:
| Pipeline | Default | Notes |
|---|---|---|
| Input decode | -hwaccel videotoolbox |
Applied to every stream input. |
| Recording encode | h264_videotoolbox -allow_sw 1 -realtime 1 -g 50 -profile:v high |
-allow_sw 1 is a software fallback safety net. |
| RTSP re-stream | h264_videotoolbox -allow_sw 1 -profile:v high |
Used by go2rtc. |
| Preview snapshot | h264_videotoolbox -allow_sw 1 |
Used for hourly thumbnails. |
You can override any preset via ffmpeg.output_args in your
config.yml exactly as on Linux Frigate. The presets are macros;
the underlying Frigate ffmpeg command-line is unchanged.
Fregata bundles two ffmpeg builds — 8.0 (default) and 7.0 as a fallback — the same pairing upstream ships. If a specific camera’s stream hits an ffmpeg-8-only regression, pin that camera back to the older build with the standard Frigate field:
- In the web UI, go to Settings → Camera configuration → Streams (FFmpeg) and pick the camera in the selector at the top.
- Expand Advanced Settings and set FFmpeg path to
7.0. - Click Save.
To pin every camera at once, use Settings → Global configuration → FFmpeg instead.
cameras: my_camera: ffmpeg: path: "7.0"path also accepts an absolute path to a custom ffmpeg install, same
as upstream.
Adaptive transcoding — adaptive_transcoding:
Section titled “Adaptive transcoding — adaptive_transcoding:”A Fregata-exclusive top-level block — not read by upstream Frigate-on-Docker. All keys
default to off; no cameras are affected until you explicitly set enabled: true.
Global defaults (every camera)
- In the web UI, go to Settings → Fregata (macOS) → Global configuration → Adaptive transcoding.
- Turn on Enable adaptive transcoding for recordings. The Enable live-view transcoding toggle below it is the separate opt-in for live view rungs.
- Optionally edit Starting rung height, Rungs and LAN networks.
- Click Save, then Restart when the page asks.
One camera
- Go to Settings → Fregata (macOS) → Camera configuration → Adaptive transcoding and pick the camera in the selector at the top.
- Set Enable adaptive transcoding (and Enable live-view transcoding) for that camera.
- Click Save, then Restart when the page asks.
LAN networks is honored only at the global level, so the camera page does not show it.
# Global defaults (applied to every camera unless overridden)adaptive_transcoding: enabled: true # recordings ABR, per-camera or global (default: false) live: false # live view rungs, a separate opt-in (default: false) lan_networks: # clients here receive the source stream, not the ladder - "127.0.0.0/8" - "10.0.0.0/8" - "172.16.0.0/12" - "192.168.0.0/16" rungs: - { height: 1080, bitrate: 4000 } - { height: 720, bitrate: 1500 } - { height: 360, bitrate: 600 }
# Per-camera overridecameras: my_camera: adaptive_transcoding: enabled: true live: trueResource fields (lan_networks) are honored only at the global level — not
per-camera — because a single Media Engine backs every transcode.
See Adaptive transcoding for the full field-by-field reference, hardware requirements, VPN/Tailscale notes, and debugging tips.
GenAI: the apple_intelligence provider
Section titled “GenAI: the apple_intelligence provider”Fregata adds one value to the provider list under genai:. It is not in upstream Frigate.
apple_intelligence uses the on-device Apple Intelligence model for object descriptions,
review descriptions and chat. It needs macOS 27 or later, takes no API key, base URL or
model, and Apple chooses the model based on your Mac’s hardware.
- In the web UI, go to Settings → Enrichments → Generative AI.
- Click Add, enter a Provider name, and set Provider to
apple_intelligence(greyed out below macOS 27). - Under Roles, switch on Descriptions and Chat.
- Click Save.
genai: apple: # the name is up to you provider: apple_intelligence roles: # always list roles; embeddings is not supported - descriptions - chatBelow macOS 27 the entry is ignored, exactly as if it were not configured. Everything else
under genai:, and every per-camera objects.genai and review.genai key, works as in
upstream Frigate. See Apple Intelligence GenAI for turning on descriptions,
the provider options, and caveats.
Reloading config
Section titled “Reloading config”- Click Save on the Settings page (or Save All if you changed several pages).
- Most changes apply immediately. If a change needs a restart, the page says Restart Frigate to apply your changes and shows a Restart button. You can also choose Restart Frigate from the menu-bar tray.
The web UI’s Restart does the same as Restart Frigate in the tray: live view and recording pause for a few seconds.
- Edit
~/Fregata/config/config.ymlin any text editor, or in the web UI’s Configuration Editor (gear icon → Configuration Editor). - Restart Frigate: click Restart Frigate in the menu-bar tray, or click Save & Restart in the Configuration Editor. Save Only writes the file without restarting.