Get plain-language descriptions of every UniFi Protect camera detection.
Search camera footage using natural language like 'white truck at night'.
Identify vehicle make, model, and color from license plate events.
Get push notifications with a snapshot when a detection happens.
| sf-grumpygeek/gawkr | 1ncendium/aibuster | aaronmayeux/ha-hurricane-tracker | |
|---|---|---|---|
| Stars | 5 | 5 | 5 |
| Language | Python | Python | Python |
| Setup difficulty | hard | moderate | easy |
| Complexity | 4/5 | 3/5 | 2/5 |
| Audience | ops devops | ops devops | general |
Figures from each repo's GitHub metadata at analysis time.
Requires a UniFi Protect API key, a local (non-cloud) account, and your own OpenAI-compatible vision model server.
Gawkr is a self-hosted tool that adds AI features to UniFi Protect, the security camera system from Ubiquiti. Instead of paying for the company's own AI add-ons, you run gawkr on your own hardware and it watches your Protect console for smart detections, then describes what happened in plain language using a vision model you host yourself. Beyond descriptions, gawkr can read license plates from car related events, identify a vehicle's make, model, color, and body type, and optionally transcribe audio from doorbell events if you connect a whisper speech to text server. Every event gets indexed so you can search your footage with plain language, like looking for a white truck at night or a person at the back door. It can also flag events that might involve a visible weapon or concerning behavior, and push alerts with a snapshot attached through Gotify, with support for more notification services planned. A web interface shows a live feed, search, and details for each event. Under the hood it is three Docker containers: one for Postgres with the pgvector extension to store events and their embeddings, one that connects to Protect and does the ingestion, and one serving the web interface. The vision model itself runs separately, wherever you already have it, and gawkr talks to it over any endpoint that speaks the OpenAI chat completions format, such as a llama.cpp server. Getting started means having UniFi Protect version 6.0 or newer, a local access account rather than a cloud login, a Protect API key, and a vision model server that can actually see images, since a text only model will not work. After filling in an env file with these details, a single docker compose command starts the whole stack, and a built in checker at slash api slash doctor can confirm everything is connected correctly. For access control, gawkr recommends putting it behind a reverse proxy you already run, or falling back to a single shared password if you do not have one. There are no user accounts or roles. The project is single tenant, meant for one household, and is released under the AGPL 3.0 or later license.
Self-hosted AI for UniFi Protect that describes camera detections in plain language, reads license plates, identifies vehicles, and lets you search footage with natural language.
Mainly Python. The stack also includes Python, Docker, PostgreSQL.
Free and open forever, but if you modify it and let others use it over a network, you must share your source code changes too.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
double-check against the repo, no cap.