The killer feature

Just ask your cameras.

Say it out loud — "is there a person at the front door?" — and a local LLM answers, grounded in a live frame from that camera, spoken back to you. No cloud. No API keys. No subscription. Running on the same box that records your footage.

OpenNVR Camera Agent — asking a camera about the lobby and getting a grounded answer with live detections
Asked out loud, answered locally — the camera agent running on your own hardware.

How it works

When you speak, Whisper transcribes your question on-device. A small LLM hosted by Ollama — with tool-calling — decides which camera and which tools to use, then runs YOLOv8 detection and BLIP scene captioning on a live frame, checks recent events, and composes an answer. Piper speaks the reply back. The whole loop runs on the same machine that records your footage.

Nothing about the pipeline is a black box: every inference goes through the KAI-C middleware, carries an end-to-end correlation ID, and lands in the append-only audit log — so "why did the agent say that at 22:14?" always has an answer.

Cameras with agency, not just data

Most systems hand you a wall of thumbnails and "motion detected" alerts. The camera agent watches on your behalf and answers in plain language: who's at the door, whether the package arrived, what happened on the perimeter overnight. It has four registered tools — scene captioning, object detection, face recognition, and the NATS event history — and picks the right one for the question against the right camera.

Local by default — provably

The agent runs entirely offline: llama3.2:3b is roughly 3 GB of RAM and 5–15 tokens/sec on a modern CPU, no GPU required. Under OpenNVR's default local_only sovereignty policy, any adapter that declares network egress is refused registration outright. You decide what, if anything, leaves the building — and the audit log proves it.

OpenNVR sovereign architecture: cameras on an isolated tier, KAI-C as the only edge, recording and AI inference and the audit log all staying on your hardware, cloud egress blocked

Voice or chat, your call

The flagship is hands-free voice — ask out loud, hear it spoken back over a WebRTC transport with Silero voice-activity detection. Prefer to type? The same agent runs in a lighter chat mode (--chat): same tools, same grounded answers, no microphone or speaker. Both open at /demo and ship in v0.1.

Runs on modest hardware

Bring the voice overlay up with a single compose flag on top of a standard OpenNVR install. Pre-built adapter images pull from GHCR — Whisper, Piper, YOLOv8 and BLIP are all CPU-runnable, and the model is fetched automatically on first boot. No cloud account, no per-seat licence, no data leaving your network.