Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 from the 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.

Quick start

  1. Download FrigateDetector.app.zip from the latest GitHub Release.
  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:
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.appOpenOpen, or
  • System SettingsPrivacy & Security → scroll to SecurityOpen Anyway, or
  • Clear the quarantine flag from Terminal:
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:

~/Library/Application Support/FrigateDetector

Logs are streamed live inside the app and also written to:

~/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:

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:

# 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:

make install
make run MODEL=yolo/yolov8n.onnx ENDPOINT=tcp://*:5555

Or use the model passed in by Frigate:

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 by the Frigate NVR project, created by Blake Blackshear 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, © 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.

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages