zmNinjaNG
Utilities
$4.99 · Designed for iPad. Not verified for macOS.
zmNinjaNG is a mobile client for ZoneMinder, the open-source video surveillance platform. View live camera feeds, browse
recorded events, and receive push notifications when motion is detected — all from your iPhone or iPad.
Features:
- Live streaming and snapshot views of all your monitors
- Dashboard with customizable widgets
- Event browsing with timeline and filtering
- Push notifications for motion and alarm events
- Multi-server profile support
- QR code import for quick server setup
- Works over LAN, VPN (WireGuard), or remote access
- Dark and light themes
- Portrait and landscape support
Requires a self-hosted ZoneMinder server. zmNg connects directly to your server — no cloud service or subscription
required.
more - Added filter presets so you can save and reuse event filters
- Added nearby replay, which plays events that happened around the same time together, in time order
- Added a search box to Settings that finds settings even inside collapsed sections
- Reorganized the Settings page so it is clearer which settings apply to the current server and which apply everywhere
- Swiping past the first or last monitor in live view now wraps around to the other end
- The Server page now shows the same storage figures as ZoneMinder's own console, with correct labels
- Fixed swiping between monitors in live view
- Fixed the plain white app icon in the Android notification bar
2.7.0 Oct 4
- Added Persian as an interface language, with right-to-left layout
- Live Activity, Timeline, and the Dashboard can now group items by server when you view several servers together
- Dashboard widgets can now show monitors from more than one server
- Event thumbnails have a toggle to hide their labels, which helps on small screens. The grid star and link now sit below the image
- Large montages and monitor lists now load in pages, so camera images show up reliably again
- The whole montage stays visible while you edit its layout
2.6.0 Sep 28
- Events from a few minutes before and after the one you are viewing can now be listed, so you can follow what happened around it.
- Events can be filtered by whether the cause came from a linked monitor or not.
- When several servers are shown at once, the event list and event grid are split into a section per server.
- The profiles screen groups each server into a section you can jump to or collapse.
- Fixed images not appearing in the montage and the monitor list when a server has many monitors.
- Fixed live view dropping to the slower stream when go2rtc is used on a server that requires a login.
- Fixed typing dates in the event filter, which accepted only one character at a time and cleared what was already entered. Date fields now have their own button for opening the picker.
- Fixed the zoom level staying wrong after leaving full screen on Android.
- Date pickers and other built-in controls now follow the light or dark theme.
2.5.0 Sep 20
- Added a setting to choose which screen the app opens on, per profile.
- Removed the 400% zoom limit on monitors, and zoomed views now load full-size frames so detail stays sharp.
- Maximizing a monitor no longer sticks, so the app stops opening that monitor in fullscreen next time.
- Replaced the fullscreen exit strip with a floating translucent close button over the feed.
- Added Russian as an interface language.
- Language pickers now list languages in a consistent order with English first.
2.4.0 Sep 14
- Added Italian as an interface language.
- Live monitors and event playback now remember your mute and fullscreen choices, and go fullscreen when you rotate the device.
- Added settings option to show events and monitors in full screen mode
- Fixed the montage view freezing on ZoneMinder servers that do not use authentication.
- Fixed the app crashing on launch on Android.
- Replaced the unlabelled capture badges with a monitor info popover that also shows the decoding setting.
- The assistant handles questions more accurately,
Full changelog https://github.com/ZoneMinder/zmNinjaNg/releases/tag/zmNinjaNg-2.3.0
2.3.0 Sep 6
See https://github.com/ZoneMinder/zmNinjaNg/blob/zmNinjaNg-2.2.1/CHANGELOG.md for details
2.2.1 Sep 1
Added profile groups so you can combine several servers and view them together as one.
Added an All Profiles mode that shows monitors and events from every server at once.
Added a Live Activity view that shows only the monitors with motion right now.
Added an option to turn analysis frames on or off while watching a live stream.
Added a per monitor option to force ZMS playback for events that do not play natively.
Added the ability to disable a profile so it stays in your list but is skipped everywhere.
Icon only buttons now show a label or tooltip when tapped on touch devices.
The interface now hides features your ZoneMinder account does not have rights to use.
2.2.0 Aug 8
Added a way to view objdetect, alarm, and snapshot frames for an event, like the older zmNinja.
Added an on-device assistant backend on iOS and Android, so the assistant can run models locally without a server.
Assistant backend choices are now named by who supplies the model, so it is clearer what you are picking.
The assistant now understands phrases like "3 days ago" instead of falling back to today.
The assistant no longer fails with an error when a local model lacks tool support; it now works with those models over Ollama.
Fixed the event server connection dropping after the app was in the background and reopened.
Connection failures now name the server that could not be reached instead of showing raw error text.
Passwords and tokens are now stripped from logs, including ones sent back by ZoneMinder.
2.1.0 Jul 30
https://github.com/ZoneMinder/zmNinjaNg/releases/tag/zmNinjaNg-2.0.0
Added an in-app assistant that can answer questions about your cameras and events, using either a remote server or a model that runs on your device.
Events can now play back continuously, moving on to the next event automatically.
Fixed the event player looping the same event after continuous playback.
Fixed a connection error when validating against ZoneMinder 1.38.3.
Fixed on-device assistant model downloads being lost before they finished installing.
2.0.0 Jul 22
https://github.com/ZoneMinder/zmNinjaNg/releases/tag/zmNinjaNg-1.4.0
The monitor card badge now counts events since you last looked instead of always the last 7 days.
The Events view can now show relative times such as "5 minutes ago".
The startup dialog is now labeled "Connecting to server" instead of "Finishing setup".
Fixed event images that could fail to load because the wrong event ID was sent in image requests.
Keyboard shortcuts now work on desktop even when TV mode is on.
Fixed the montage showing the wrong number of columns for some layouts, such as 5 or 9 columns.
Returning from an event no longer scrolls the events list back to the top.
1.4.0 Jul 15
Added a list of recent events to the monitor detail view
Developer notices can now be deleted one at a time, cleared all at once, or restored
Fixed inconsistent scrubbing when playing back an event
Events view can now show relative times, like "5 minutes ago".
Inactive zones on a monitor now look different from active ones.
A command palette lets you jump to any screen quickly. Open it with the / key, the sidebar, or on mobile.
Keyboard shortcuts can move you between screens.
The language and menu buttons have been moved to more predictable spots.
The desktop app now remembers its window position and size between launches.
You can filter events to show only archived ones, and mark events as archived.
Favorite events now keep loading past the "Load More" point.
Switching monitors while watching a live stream now reliably shows the new stream.
Returning from an event with the back gesture or button now keeps your place in the events list instead of jumping to the top.
Clearing a time filter no longer also clears the monitor you were viewing.
Event filtering now works consistently.
Monitor filtering in the Monitors view works again.
On Android, the back gesture now exits the app from the main screen instead of getting stuck.
Panning around a monitor view has been improved.
Zooming in on a monitor now enlarges the view.
1.3.0 Jul 4
https://github.com/ZoneMinder/zmNinjaNg/releases/tag/zmNinjaNg-1.1.14
1.1.14 Jun 4
Implemented enhancements:
feat(settings): hover preview playback speed #149
feat: token freshness gate (30 min leeway, no stale tokens to server) #145
Fixed bugs:
fix: event playback stability — re-init churn, navigation remounts, cross-platform divergence #148
fix(ios): video controls hidden after rotation and unreachable in landscape fullscreen #147
fix(android): toolbar buttons unreachable in landscape under status bar #144
fix(logs): linux Tauri log file dir not created; reveal+truncate fail #143
fix(ci): linux-arm64 release fails — missing xdg-open on runner #142
1.1.13 May 17
Implemented enhancements:
feat(logs): reduce console noise and surface meaningful HTTP details #141
feat: persistent log file with share/open/clear #139
Fixed bugs:
fix: single monitor view should always stream, never use snapshot mode #138
1.1.12 May 5
Fixed bugs:
fix: PTZ control protocol mismatch with ZoneMinder server #137
fix: saving a montage layout doesn't update the dropdown label to the new name #136
fix: montage column layout reverts to 3 columns after navigation #135
fix: compact-mode CSS hides last sidebar nav item #133
fix(montage): saved default layout name shown but layout not applied on Windows Tauri startup #127
fix: monitor detail view fails when ZM Servers row has placeholder Hostname/Port=0 #120
1.1.11 May 3
- Added filter presets so you can save and reuse event filters
- Added nearby replay, which plays events that happened around the same time together, in time order
- Added a search box to Settings that finds settings even inside collapsed sections
- Reorganized the Settings page so it is clearer which settings apply to the current server and which apply everywhere
- Swiping past the first or last monitor in live view now wraps around to the other end
- The Server page now shows the same storage figures as ZoneMinder's own console, with correct labels
- Fixed swiping between monitors in live view
- Fixed the plain white app icon in the Android notification bar
more Version 2.7.0 Oct 4
Data Not Linked to You The following data may be collected but it is not linked to your identity: