Open-source project
blakeblackshear/frigate avatar
blakeblackshear/frigate

Frigate NVR: Local Object Detection for Home Assistant Cameras

NVR with realtime local object detection for IP cameras. Frigate NVR - Realtime Object Detection for IP Cameras \[English\] | 简体中文 A complete and local NVR designed for Home Assistant with AI object detection.

37,445 stars3,830 forksTypeScriptMIT

At a glance

What is it?
Frigate is a local NVR for IP cameras that uses motion detection to trigger TensorFlow object detection, tightly integrated with Home Assistant. This review covers its architecture, setup, and where it falls short.
Who is it for?
Adopt Frigate if you run Home Assistant and want a local, privacy-preserving NVR with object detection that does not rely on cloud services. Do not adopt it if you lack a GPU or AI accelerator, as CPU-only detection will struggle to keep realtime pace.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • blakeblackshear/frigate37,445 ★ · +2,816
Star history
Repository2026-07-282026-11-13
blakeblackshear/frigate34.6k37.4k

2,816 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Why Frigate Exists and Who Needs It

Frigate solves a specific problem: many IP cameras push continuous video to the cloud or to a vendor app, which raises privacy concerns and latency. Frigate is a complete and local NVR designed for Home Assistant, meaning it keeps all video and detection on your own hardware. The target user is a Home Assistant enthusiast who wants AI object detection without sending footage offsite. The README describes it as a complete and local NVR designed for Home Assistant, with tight integration via a custom component. If you do not use Home Assistant, you lose the main integration point, though MQTT support gives some flexibility for other systems.

The Core Mechanism: Motion First, Detection Second

The architecture is built on a simple but effective principle: do not run object detection on every frame. Frigate uses a very low overhead motion detection to determine where to run object detection. That means the software first checks for motion in a scene, and only when motion is detected does it send that region to a TensorFlow process for object classification. This is a deliberate trade-off. The README states it is designed to minimize resource use and maximize performance by only looking for objects when and where it is necessary. It also emphasizes realtime over processing every frame, so you may miss events if motion is too subtle or if the detector is busy. The motion detection runs with low overhead, but it is still an extra step that can fail if a camera produces noisy or low-quality video.

Multiprocessing and Detector Separation

Frigate leverages multiprocessing heavily. Object detection with TensorFlow runs in separate processes for maximum FPS. This is not a single-threaded script; the design isolates the detection workload from the video pipeline. The README also notes that it communicates over MQTT for easy integration into other systems, so events and states can be consumed by external automation. The use of separate processes means that a slow detector will not block the rest of the NVR, but it also means you need enough CPU cores or a dedicated accelerator to see the benefit. The README recommends a GPU or AI accelerator, stating that AI accelerators will outperform even the best CPUs with very little overhead. Without such hardware, the separate processes may just saturate your CPU.

Getting It Running: Commands and Configuration

The README does not include installation commands, but it points to the documentation at docs.frigate.video for configuration. The repository itself is the source code, and the primary language is TypeScript, though the core detection uses OpenCV and TensorFlow. The repository's Makefile builds and runs the project with Docker: `make local` builds frigate:latest and `make run` starts it with ports 5000 and 8971 published and ./config mounted at /config. What the README does confirm is that you need to configure object detectors; it references the supported object detectors page. The README mentions a built-in mask and zone editor, which suggests configuration is not purely file-based. For a new user, the setup involves more than a single command; you must plan your detector hardware and network topology.

Recording and Live View Features

Frigate records video with retention settings based on detected objects, which is a key feature for a security NVR. You can keep 24/7 recording, but you can also configure it to retain only clips where an object was detected. This is different from a dumb DVR that records everything and fills disks. The README also lists re-streaming via RTSP to reduce the number of connections to your camera. That is a practical feature: if you have multiple viewers, they connect to Frigate, not the camera, which lowers the load on the camera. For live view, it supports WebRTC and MSE for low-latency streaming. The trade-off is that these features require additional configuration and hardware resources. The multi-camera scrubbing and streamlined review workflow shown in screenshots suggest a polished UI, but you need a decent server to run it smoothly.

Limitations and When It Is the Wrong Tool

The biggest limitation is hardware. The README explicitly recommends a GPU or AI accelerator, which means a Raspberry Pi or a low-end NAS may not deliver realtime detection. If you only have a CPU, Frigate will likely struggle to keep up with multiple cameras. Another limitation is that it is designed for Home Assistant; if you are not in that ecosystem, the custom component integration is lost, and you must rely on MQTT alone. The motion detection step can miss objects that move slowly or are static, such as a parked car, because detection only triggers after motion. For a use case like counting people who stand still, this is the wrong tool. Also, the project is in active development, with the latest release being v0.18.2 (2026-10-15), so check the release notes for breaking changes between versions.

Alternatives and How They Differ

A common alternative is a commercial NVR like Blue Iris, which runs on Windows and supports AI detection via third-party plugins. Blue Iris uses a different approach: it processes all frames with motion detection but offloads AI to a separate service like DeepStack or CodeProject.AI. Frigate integrates the detection directly into the NVR pipeline and is built for Linux and Home Assistant. Another alternative is Shinobi, an open-source NVR that supports pluggable detectors but does not have the same Home Assistant focus. The key difference is that Frigate puts object detection at the core, with motion as a filter, while others treat AI as an add-on. If you want a self-contained, Home Assistant-native solution, Frigate is the choice; if you prefer a more traditional NVR with optional AI, Blue Iris or Shinobi may fit better.

Maintenance, Upgrades, and License Implications

Frigate is under the MIT License for code, which allows free use, modification, and distribution with attribution. However, the README explicitly states that the Frigate name and logo are trademarks of Frigate, Inc. and are not covered by the MIT License. That means you can fork the code, but you cannot call your fork Frigate or use the logo without permission. The project is actively maintained, with the last push on 2026-11-02 and recent releases v0.18.0 (2026-09-12), v0.18.1 and v0.18.2 (2026-10-15). Upgrades may require configuration changes, so check the release notes. The custom Home Assistant component is a separate repository, so you need to update it in tandem with the core server. Plan for regular upgrades and check the release notes before each one.

Editorial conclusion

Adopt Frigate if you run Home Assistant and want a local, privacy-preserving NVR with object detection that does not rely on cloud services. Do not adopt it if you lack a GPU or AI accelerator, as CPU-only detection will struggle to keep realtime pace. Before deploying, verify your camera model supports RTSP re-streaming and that your hardware meets the detector requirements listed in the official documentation. Check the trademark policy if you plan to use the Frigate name in any commercial or public project.

Frequently asked questions

How do I install Frigate NVR?

The repository has no install script. Documentation sits at docs.frigate.video, and the Makefile builds the image from docker/main/Dockerfile with a local target and then runs it, publishing ports 5000 and 8971 with the local config directory mounted at /config.

How do I run Frigate on Docker?

Use the Makefile: the local target builds a frigate:latest image and the run target starts it with two published ports and a config volume. For Home Assistant, the integration itself is a custom component maintained in the separate frigate-hass-integration repository, and the two communicate over MQTT.

Does Frigate NVR need a GPU?

The README says use of a GPU or AI accelerator is highly recommended, and that AI accelerators will outperform even the best CPUs with very little overhead. The supported object detectors are documented separately, and the compose file shows GPU support as a commented deploy block rather than a documented flag.

How do I use Frigate with Home Assistant?

Through a custom component hosted in the separate frigate-hass-integration repository rather than from this repository directly. The two sides talk over MQTT, and Frigate also re-streams over RTSP to reduce connections to the camera, with WebRTC and MSE available for low-latency live view.

What does Frigate NVR do with the video it records?

Recording runs continuously, and retention settings are based on detected objects, so clips are kept according to what the detector saw rather than uniformly. Detection itself runs locally on the camera feed using OpenCV and TensorFlow, after a low overhead motion pass narrows down where to look.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/blakeblackshear-frigate.svg)](https://hysenlabs.com/projects/blakeblackshear-frigate)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/blakeblackshear-frigate.svg)](https://hysenlabs.com/projects/blakeblackshear-frigate)

Was this useful?