https://github.com/home-assistant-tools/frigate-apple-detector
Native macOS app that turns an Apple Silicon Mac into a CoreML / Neural Engine-accelerated object detector for Frigate over ZMQ. Signed & notarized — no Python, venv or Docker needed.
https://github.com/home-assistant-tools/frigate-apple-detector
apple-silicon coreml detector frigate frigate-nvr home-assistant macos neural-engine nvr object-detection onnx onnxruntime swift yolov8 zmq
Last synced: 10 days ago
JSON representation
Native macOS app that turns an Apple Silicon Mac into a CoreML / Neural Engine-accelerated object detector for Frigate over ZMQ. Signed & notarized — no Python, venv or Docker needed.
- Host: GitHub
- URL: https://github.com/home-assistant-tools/frigate-apple-detector
- Owner: home-assistant-tools
- License: mit
- Created: 2026-05-12T18:06:45.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-15T03:56:25.000Z (23 days ago)
- Last Synced: 2026-06-22T07:33:00.269Z (16 days ago)
- Topics: apple-silicon, coreml, detector, frigate, frigate-nvr, home-assistant, macos, neural-engine, nvr, object-detection, onnx, onnxruntime, swift, yolov8, zmq
- Language: Python
- Homepage: https://github.com/duongvanba/frigate-apple-detector/releases/latest
- Size: 10.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Frigate Apple Silicon Detector
A native macOS app that runs an ONNX detector for Frigate on Apple Silicon. The app ships with the runtime, the required Python libraries and the `yolov8n.onnx` model bundled inside, so you don't need to install Python, a venv or any of the repo's dependencies — just download and open it.
The release build is **signed with a Developer ID certificate and notarized by Apple**, so it opens normally on macOS without "unidentified developer" warnings.
> Based on the official [`apple-silicon-detector`](https://github.com/frigate-nvr/apple-silicon-detector) from the [Frigate](https://github.com/blakeblackshear/frigate) project (MIT, © Blake Blackshear). This repository repackages it as a fully native macOS app with a bundled default model and a signed + notarized release. See [Credits](#credits).
## Quick start
1. Download `FrigateDetector.app.zip` from the [latest GitHub Release](../../releases/latest).
2. Double-click the zip to unzip it.
3. Open `FrigateDetector.app` (double-click). Because the build is notarized, macOS opens it without a Gatekeeper block.
4. In the app:
- **Model**: defaults to the `yolov8n.onnx` model bundled inside the app. Use **Choose model** to point at your own `.onnx`, or tick **Auto** to let Frigate supply the model.
- **Host**: use `*` to allow Frigate to connect from another machine/container; use `127.0.0.1` to keep it local.
- **Port**: defaults to `5555`.
- Press **Start**.
5. Wait about 1 minute for the runtime and model to fully start up (the live log shows progress).
6. Point Frigate at the Mac's TCP endpoint, for example:
```yaml
detectors:
apple_silicon:
type: zmq
endpoint: tcp://192.168.2.2:5555
```
Replace `192.168.2.2` with the LAN IP of the Mac running the app.
## If macOS still blocks the app
A downloaded release is notarized, so a normal double-click should just work. You only need this section if you **built the app yourself** (those builds are ad-hoc signed) or copied it across machines in a way that flagged it as quarantined:
- Right-click `FrigateDetector.app` → **Open** → **Open**, or
- `System Settings` → `Privacy & Security` → scroll to `Security` → **Open Anyway**, or
- Clear the quarantine flag from Terminal:
```bash
xattr -dr com.apple.quarantine /path/to/FrigateDetector.app
```
The app opens a TCP endpoint for Frigate to connect to, so check your firewall, local network and access permissions before relying on it long term.
## Where does the app store data?
The app does not write into the host machine's system Python or venv directories. Runtime data is stored at:
```text
~/Library/Application Support/FrigateDetector
```
Logs are streamed live inside the app and also written to:
```text
~/Library/Application Support/FrigateDetector/Logs/FrigateDetector.log
```
## Building the app from source
Requirements on the build machine:
- macOS Apple Silicon
- Xcode Command Line Tools
- `uv` or Python 3.11+
Build the app:
```bash
make app
```
After building, the app is at `macos/FrigateDetector.app` (ad-hoc signed for local use).
## Signing and notarizing your own build
To produce a release that opens cleanly on other Macs, sign it with a `Developer ID Application` certificate and notarize it with your Apple Developer account. The helper script does signing + notarization + stapling:
```bash
# Using an app-specific password
SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
APPLE_ID="you@example.com" \
TEAM_ID="TEAMID" \
APP_PASSWORD="xxxx-xxxx-xxxx-xxxx" \
macos/scripts/sign_and_notarize.sh
```
Notes:
- `SIGN_IDENTITY` is optional — if omitted, the script uses the first `Developer ID Application` identity in your keychain.
- Set `SKIP_NOTARIZE=1` to sign only (no notarization).
- Hardened-runtime entitlements for the bundled PyInstaller/ONNX Runtime binary live in `macos/FrigateDetector.entitlements`.
- The script writes the release zip to `macos/FrigateDetector.app.zip`.
## Running the detector from the command line
You can still run the detector directly via the Makefile:
```bash
make install
make run MODEL=yolo/yolov8n.onnx ENDPOINT=tcp://*:5555
```
Or use the model passed in by Frigate:
```bash
make run MODEL=AUTO ENDPOINT=tcp://*:5555
```
## Main components
- `macos/App/Sources/FrigateDetectorApp.swift`: the native macOS UI.
- `macos/scripts/build_app.sh`: builds the `.app` and packages the detector runtime with PyInstaller.
- `macos/scripts/sign_and_notarize.sh`: Developer ID signing, notarization and stapling.
- `macos/FrigateDetector.entitlements`: hardened-runtime entitlements for notarization.
- `detector/zmq_onnx_client.py`: the ZMQ server that receives tensors from Frigate and runs ONNX Runtime.
- `detector/model_util.py`: model output post-processing.
- `yolo/yolov8n.onnx`: the default model bundled into the app release.
## Credits
This project is based on the original [**apple-silicon-detector**](https://github.com/frigate-nvr/apple-silicon-detector) by the [Frigate NVR](https://github.com/frigate-nvr) project, created by [Blake Blackshear](https://github.com/blakeblackshear) and the Frigate contributors. The core ONNX/ZMQ detector and the Frigate integration come from that project.
This repository builds on it by:
- Rewriting the macOS launcher as a fully native AppKit app (no Terminal window required).
- Bundling a default `yolov8n.onnx` model so it works out of the box.
- Signing the release with a Developer ID certificate and notarizing it with Apple.
Licensed under the [MIT License](LICENSE), © 2020 Blake Blackshear — the original copyright and license are preserved.
> **Disclaimer:** This is an independent community project. It is **not affiliated with, endorsed by, or officially supported by** the Frigate project or its maintainers. "Frigate" is the name of the upstream project and is used here only to describe compatibility.