The open-source video recording project OpenNVR has published version 0.1.6, and its release notes on GitHub describe a update that changes how users look for events in recorded video. The headline feature lets people type a request in ordinary words, such as 'red truck at the dock yesterday', and get matching footage back. The release also bundles 147 merged changes since version 0.1.5 and includes security fixes that the notes say make upgrading advisable for every installation.
What OpenNVR is and what changed
OpenNVR is software for network video recorders, usually called NVRs. An NVR stores footage from IP cameras and lets operators review it later, which is why search tools matter: a system that records around the clock can hold weeks or months of video that nobody wants to scroll through by hand.
According to the GitHub release page, version 0.1.6 touches several parts of the platform at once. Its search, app catalogue, camera AI, Home Assistant support, camera agent, live view, playback and software development kits (SDKs) all received changes. Rather than a single flagship feature, the release reads as a broad consolidation across the project.
Searching footage in plain words
The most visible addition is a Search page that covers every recorded visit. According to GitHub, a typed phrase is converted into chips, small editable filter tags that the user can adjust. Selecting a result opens the Recordings view at the exact moment described, so a search moves directly into review.
Search also works with people. Rather than typing a name as free text, users pick a person from a list. A second feature, labelled 'Where did it go?', follows a single visit across cameras, scores each hop between them and explains the reasons for each score. That could help an operator reconstruct how someone or something moved through a site.
Search depends on descriptions. GitHub says captions, colours, vehicle types and licence plates are now searchable once they have been written for a visit. When the CLIP adapter is enabled, a query for 'truck' can match a visit described as 'a lorry', which matters for international users who describe the same object in different English varieties. The notes also say that enrichment runs only when the hardware can handle it, and that search returns 'not yet' instead of 'no' when a description has not been generated. That distinction prevents operators from concluding that nothing happened when the system simply has not finished processing.
Security fixes and upgrade steps
GitHub's notes list four security changes, each referenced by an issue number in the project's tracker:
- MediaMTX's control API and playback now require a token. Previously they were exempt from authentication because they were considered local, even though they listened on all network interfaces. Once MediaMTX joined the apps network, an app container could have read hook secrets, added paths or fetched footage (issue 471).
- A forged X-Forwarded-For header no longer determines the client IP address. The header is read from the right, past trusted proxies, so it can no longer bypass the device firewall, the WebSocket ticket's IP binding or the audit log (issue 491).
- Integration secrets are encrypted at rest and masked in the API and the user interface (issue 578).
- An app can attach claims only to visits on its own cameras (issue 542).
Anyone upgrading should follow the steps in the release notes. Administrators copy three tag lines from the .env.example file into their .env file, setting CORE_TAG, ADAPTER_TAG and YOLO_POSE_ADAPTER_TAG to 0.1.6. They then run docker compose pull followed by ./start.sh up.
Two details may affect existing setups. Footage Search 2.0 no longer keeps its own index, so the old volume named opennvr_footage_search_data can be removed with docker volume rm to reclaim disk space. PTZ control now requires a new ptz.control permission, but the upgrade grants it to every role that can view live video, so existing users should not lose access.
Apps, Home Assistant and developer tools
The app catalogue has also changed. Each catalogue entry now has its own page, including Line Crossing, Loitering, Intrusion with an arming panel, Abandoned Object, Package Delivery, Gate Controller, Alert Notifier 2.0, and Smart Doorbell. A new Guard Scan Compliance app, with an Entry Screening page and the pose adapter, has been added. Each app is configured on its own page and runs only on the cameras selected for it, and a camera's AI features follow the apps that use it. Disabling an app stops its computing load, which can matter on modest hardware.
Home Assistant users get two routes. Built-in MQTT discovery is now working, so OpenNVR cameras, sensors and alerts appear in Home Assistant's MQTT integration through a scoped API token. A native integration offering live video, controls and a media browser has been built and tested in the repository, but GitHub says it will become installable only after its pyopennvr client is published on PyPI and the integration is listed on HACS.
For developers, the release brings App SDK 0.7.0 and Adapter SDK 1.3.0. The App SDK adds an App facade that defines an app in a single function, a simulated camera command called opennvr-app dev, Home Assistant entities, and app-facing search and evidence. The Adapter SDK adds an Adapter front door and an opennvr-adapter command-line tool with commands for creating, developing, validating, conforming, listing and inspecting specifications. GitHub says both SDKs now reach PyPI.
The camera agent gets faster for simple questions, which are now routed before the language model is consulted. The project measured ten small language models on real tool use, and systems with 4-core CPUs now default to qwen3:1.7b. New questions such as 'did you see a blue car?' and 'was Sam at the door yesterday?' are supported. Live view draws one detection box per object with its label and score, and a slow detector drops frames rather than disrupting the camera session. Playback works in Firefox and with G.711 audio and continues across recording files. The dashboard has been redesigned to fit one screen and can be rearranged, every view supports the light theme, and the interface is available in French.
What to watch next
For existing users, the priorities are clear: apply the security fixes, follow the upgrade steps and check that the new permission model fits your setup. For Home Assistant users, the native integration is the item to track, since its installation depends on the pyopennvr client and HACS listing. Teams that rely on search should also expect the descriptions and enrichment behaviour to shape how useful results are, because the system reports 'not yet' when a visit has not been described. The release notes also record one post-release fix: Guard Scan Compliance was missing from the release build, and it is now published as ghcr.io/open-nvr/guard-scan-compliance:latest, the tag the App Catalog installs.
Related: Open Source Newsletter App MailCheap Lets You Self-Host for Free · NoteDiscovery Adds HTTP MCP Server for AI Clients
Comments (0)