Kapal
Frigate NVR, Minimal & Fast
Free · In‑App Purchases · Designed for iPad. Not verified for macOS.
Kapal
A minimal, secure viewer for your Frigate NVR system.
Kapal is a lightweight and privacy-focused iOS and iPadOS app built specifically for users of the Frigate NVR (Network Video Recorder) system. Designed with simplicity, performance, and security in mind, Kapal lets you connect to your Frigate server and monitor your camera feeds with ease, without unnecessary bloat.
Key Features:
- Live Camera Grid: View all your cameras in a clean, real-time grid layout.
- Minimal Mode: Hide borders, labels, and UI elements to maximize visibility. See more cameras at once with less scrolling.
- Full-Screen Playback: Tap any feed to enter fullscreen live view.
- Picture in Picture: Keep a live camera visible while using other apps or navigating around your device.
- Event Review: Browse and replay past detection events directly in the app.
- H.265 / HEVC Support: Watch supported H.265 / HEVC live streams and Event Clips directly in Kapal.
- Privacy-First Design: Built natively with no analytics, trackers, or data collection.
Whether you’re reviewing a single feed or monitoring multiple zones, Kapal keeps the interface fast, clean, and efficient.
Disclaimer:
Kapal requires an existing Frigate NVR system to function. H.265 / HEVC support is still evolving and compatibility may vary depending on your camera, stream configuration, and Frigate/go2rtc setup. If an Event Clip does not play correctly in Kapal, it may still work in a dedicated video player such as the VLC mobile app.
more This app coincides nicely with Kapal. It’s had a few new versions coming out with each one adding to the experience. Pretty happy with it and anxious to see future versions!
This app coincides nicely with Kapal. It’s had a few new versions coming out with each one adding to the experience. Pretty happy with it and anxious to see future versions!
Just set up Cloudflare ddns and tunneling. App is improving and developer eager to get it working for everyone.
Developer Response Edit 3/11/26: 1.5 is now out which lets you connect with whatever network combo you have now. Thank you again!Original:Hi — thank you for taking the time to leave feedback.I won’t get into specifics here, but I’d genuinely love to better understand your setup. I personally run a very similar self-hosted/DDNS configuration and it works well on my end, so there may be something small we can adjust.I’m a solo developer and I personally respond to every email. If you’re open to it, please reach out directly at hey@judeworks.app — I’ll work with you one-on-one to figure it out.Also, you’re absolutely right about visibility around support. Adding a clear support email on the landing screen is a great idea, and I’ll be including that in the next release.Building this has been a bit of a leap of faith — detailed feedback during development is rare (I’ve heard from roughly 0.002% of users), and I’m genuinely grateful to those who reach out. It directly shapes what gets improved next.If you’re willing, I’d really appreciate connecting.
Just set up Cloudflare ddns and tunneling. App is improving and developer eager to get it working for everyone.
Edit 3/11/26: 1.5 is now out which lets you connect with whatever network combo you have now. Thank you again!Original:Hi — thank you for taking the time to leave feedback.I won’t get into specifics here, but I’d genuinely love to better understand your setup. I personally run a very similar self-hosted/DDNS configuration and it works well on my end, so there may be something small we can adjust.I’m a solo developer and I personally respond to every email. If you’re open to it, please reach out directly at hey@judeworks.app — I’ll work with you one-on-one to figure it out.Also, you’re absolutely right about visibility around support. Adding a clear support email on the landing screen is a great idea, and I’ll be including that in the next release.Building this has been a bit of a leap of faith — detailed feedback during development is rare (I’ve heard from roughly 0.002% of users), and I’m genuinely grateful to those who reach out. It directly shapes what gets improved next.If you’re willing, I’d really appreciate connecting.
I love this app! It is the best way to view my Frigate installation on iOS. It just works
Developer Response You are too kind. Super happy that you enjoy it. Tell your nerdy NVR friends :)
I love this app! It is the best way to view my Frigate installation on iOS. It just works
You are too kind. Super happy that you enjoy it. Tell your nerdy NVR friends :)
Just switch from android and struggled between the meh frigate apps available on iOS. Kapal just works, connected to my frigate over https and it’s seamless. This is the app you want.
Developer Response Thank you so much! Reviews like this really pump me up to take Kapal to the next level. I’m really excited about the next couple of features in the pipeline. If you ever have any suggestions or issues, please reach out via the contact button in the app!Thank you again for your time and kind words!
Just switch from android and struggled between the meh frigate apps available on iOS. Kapal just works, connected to my frigate over https and it’s seamless. This is the app you want.
Thank you so much! Reviews like this really pump me up to take Kapal to the next level. I’m really excited about the next couple of features in the pipeline. If you ever have any suggestions or issues, please reach out via the contact button in the app!Thank you again for your time and kind words!
Fixed additional connection issues that prevented some users from connecting to their servers over certain connection types.
1.7.5 May 30
This update resolves an issue introduced while tightening app security. I went a bit too far, and Tailscale unfortunately became a casualty.
Apologies for the disruption, and thanks for your patience.
1.7.4 May 29
Kapal 1.7.3 — Snapshots, Sharing, and Smarter Alerts
A massive thank-you to everyone using the Roadmap in Settings to submit ideas and vote on what comes next. Every single feature in this update came directly from your suggestions and the community votes that pushed them to the top. This is your release.
WHAT'S NEW
• HD event snapshots — event photos now pull a full-resolution frame from the recording stream when available, with a graceful fallback to the standard snapshot. Massive quality upgrade on cameras with low detect resolution.
• Photo / Video switcher — event detail now has a proper segmented control to swap between the photo and the clip. Snapshot is finally a first-class view, not a placeholder.
• Pinch, zoom, and pan on the fullscreen photo — tap the photo to go fullscreen, then pinch to zoom in, drag to pan, double-tap to toggle 2.5x. Share button included.
• Bigger, sharper event list thumbnails — new Full Frame option (now the default) shows the whole camera frame for each event instead of a tight 175x175 crop. Toggle right from the Events tab toolbar if you prefer the old style.
• Offline Camera Alerts (Kapal+) — get a notification when a camera has been offline for a while. Configurable threshold, optional "back online" alerts, per-camera toggles. Lives under System → Connection → Offline Alerts.
• Faster live grid — camera previews now use WebP where supported, dropping bandwidth roughly 10x at the same image quality. Falls back automatically.
• iPad polish — events now lay out as a 2-column grid and the long-standing tap bug on event cards is fixed.
KEEP THE IDEAS COMING
Every feature above started as a comment in the Roadmap. Settings → System → Roadmap. Submit what you want, vote on what others have asked for, and be specific! The more clearly you describe the use case, the easier it is to design the right thing.
Thank you for making Kapal better. :)
1.7.3 May 27
What’s New in Kapal
This update fixes an issue where some videos would stop playing after 5 seconds.
Onboarding has also been improved, especially for users who need to enter a username and password, making setup smoother and easier to follow.
New in this release: Roadmap. You can now submit your own feature ideas and vote on future improvements directly in the app. Find it under the System tab, at the bottom near the Contact Support button.
This release also marks build 50 for Kapal. A special thank you to everyone who has reached out for support, reported issues, and shared suggestions along the way. Kapal gets better because of users like you, and your feedback directly shapes what comes next.
1.7.2 May 18
I appreciate your ongoing support and a big thank you to those who reach out with suggestions!
Bug fixes and quality improvements:
• Improved support/contact flow for a smoother help experience.
• Fixed a System tab issue so server restart is consistently available.
• General stability and reliability enhancements.
1.7.1 May 16
What’s New
This update comes to you from a laundromat in Miami while I’m on vacation, because apparently that is when I decided to finally wrap up Kapal’s H.265 / HEVC support.
Main Improvements
H.265 / HEVC Reliability
This is a major H.265 / HEVC update for Kapal. Live camera streams and event clips using H.265 should now work much more reliably, including setups that previously failed or behaved inconsistently.
One of my own H.265 cameras has been a long-running troublemaker: unreliable live view, unreliable event playback, and constant edge cases exposing gaps in Kapal’s playback support. With this update, that camera is now correctly streaming its main feed and playing back events reliably.
Stream Quality Selection
You can now tap the stream quality while viewing a live camera and switch qualities directly from there. Kapal will remember your selection and use it as the default for that camera.
Other Improvements
- Improved live camera playback reliability for both main and sub streams.
- Improved playback handling for H.264 streams and event clips.
- Added better fallback handling for unsupported codecs and playback paths.
- Improved detection of available Frigate/go2rtc stream options.
- Improved main/sub/MJPEG fallback behavior so stream selection is clearer and more reliable.
- Added a connection status indicator while Kapal tests available stream fallbacks from main stream to sub stream to MJPEG.
- Improved event loading, filtering, snapshots, and thumbnails, especially for ongoing events.
- Added a dedicated fallback playback path so Kapal can still attempt event clips instead of failing immediately.
If you have a camera, stream, or event clip that still does not play correctly, please reach out: hey@judeworks.app
1.7 May 12
Added logic to automatically refresh the Events tab so data stays fresher. Thank you to the user who suggested this change.
1.6.1 Apr 4
One of the last visual tweaks I wanted to ship after recently refreshing the Cameras feed and System menu was the Events experience, and this update delivers that.
What’s new in this update
• Events view fully refreshed
• Cleaner, more modern event cards with better hierarchy and less clutter
• Improved metadata presentation for things like confidence, names/sub-labels, zones, and plate info (when available)
• Smarter filtering and sorting
• Updated Filter & Sort flow with clearer date handling
• Added ongoing-first sorting and better filter controls for faster triage
• Better event search
• Search now progressively pages server results and continues finding more matches as you scroll
• Added retry behavior for paging failures instead of silently stopping
• Added search suggestions based on discovered event data
• Event detail improvements
• New status strip for high-signal states (ongoing, retained, false positive)
• Cleaner detail layout that hides empty fields automatically
• Added retry actions for failed snapshot/video loads
• Connection/recovery UX improvement
• Added Manage Servers button on the connecting screen so you can cancel and switch/edit servers quickly if a target is unreachable
Fixes and polish
• Removed noisy badges/labels that weren’t adding value
• Improved reliability around event pagination edge cases
1.6 Mar 29
This update is proof that one email can spiral into a full revamp: a simple request turned into rebuilt onboarding and much better server management.
What’s new and improved:
•Fixed cases where Kapal could show “no cameras” even though you were connected and cameras were still loading
•Better connection handling: Kapal now detects disconnects while you’re using it and prompts you instead of requiring a quit/relaunch
•Cleaner settings layout (system options moved out of Camera Settings into the System view)
•Server URL testing when you add a server to confirm connectivity and help you choose the most secure option available
•Added a Support button during onboarding if you hit issues getting your server authorized
•Plus a pile of smaller polish and consistency fixes throughout the app
Also introducing Kapal+ to help fund ongoing development, with:
•Multiple servers
•Server priority ordering
•Automatic failover if your primary server goes down
I’ve got a ton of ideas queued up for what’s next. The only big area left that still needs the full treatment is the Events page — and I’m looking forward to improving it soon.
And seriously: keep the feedback coming. If one email can cause this much change, imagine what two could do.
1.5 Mar 11
What's New
Birdseye Auto-Hide
Birdseye can now automatically show and hide based on activity. When set to "Only With Detections," Birdseye appears when objects are detected on any camera and disappears when activity stops. Find this option in Settings → Birdseye → Visibility.
Improved Network Performance
Fixed an issue where snapshot requests could pile up on slower connections. The app now waits for each request to complete before starting another and automatically backs off when experiencing connection issues.
Thank you for using Kapal! If you have feedback or run into any issues, please reach out via Settings → Contact Support.
1.4.2 Jan 20
Smarter Streams, Faster Loading
This update improves how Kapal connects to camera streams and makes setup cleaner.
SMART STREAM DETECTION
- Kapal now auto-detects the best stream type per camera by analyzing your go2rtc configuration
- Settings now shows at a glance which cameras support HLS, Sub Stream, or MJPEG
- Added "Reset Stream Detection" to re-probe after Frigate/go2rtc changes
FASTER CONNECTIONS
- Rebuilt timeout logic gets you to video faster
- Quicker detection of connection problems means less waiting on black screens
- Live connection status like "Checking HLS...", "Trying Sub Stream..."
PICTURE-IN-PICTURE
- Keep watching cameras while using other apps
- Available for HLS streams. Tap the PiP button in the controls overlay
NEW SETUP GUIDE
- Added an HLS Streaming Setup guide in Settings to help configure go2rtc for best quality
SETTINGS CLEANUP
- Cameras now live on their own subpage in Settings to reduce clutter and keep stream settings focused
BUG FIXES
- Fixed swipe-to-dismiss not working on MJPEG streams
- Improved text readability in setup guides
If Kapal’s been useful, an App Store review helps a lot.
Questions or issues: Settings → Contact Support.
1.4.1 Jan 16
What’s New in Kapal
First of all, a huge thank you to everyone who has given Kapal a shot. Building this has been a labor of love, and seeing others find it useful really keeps me going.
This update brings several new features to help you keep an eye on your home:
• High-Quality HLS Streaming: I’ve introduced support for high-quality video via go2rtc. Please note that for this to work, you’ll need to have go2rtc streams configured in your Frigate server. If you’re unsure how to set that up, the Frigate documentation is a great place to start.
• Performance vs. Quality: You’ll now find a new "Stream Mode" toggle in settings. Choose "Quality" for a crisp, high-definition HLS feed, or "Performance" for a lower-latency MJPEG stream that loads nearly instantly.
• Birdseye Support: Birdseye is finally here. You can now view your composite feed directly in the Live tab. I’ve also included sizing options so you can set it to "Large" if you want it to act as a full-width hero card at the top of your grid.
• System Stats: A brand new System tab is now available, allowing you to monitor your Frigate server’s health, storage usage, and detector performance in real-time.
• Automatic Stream Recovery: If a high-definition stream isn't supported by your hardware (which can happen with certain H.265 formats), Kapal is now smart enough to automatically cycle through your available feeds until it finds a usable stream so you aren't left with a black screen.
Note: To get the most out of the new Birdseye features, please ensure you have 'restream: True' enabled in your Frigate config.
I’m still working hard to make this the best experience possible, so if you have any questions, feedback, or just want to report a bug, please reach out at hey@judeworks.app. I’d love to hear from you!
1.4 Jan 5
What's New
• Fixed authentication issues with various Frigate server configurations including reverse proxies, URL redirects, and token-based auth setups
• Live camera streams now automatically reconnect when returning to the app after being in the background
• Event thumbnails and snapshots load more reliably with automatic retry on failure
• Added image caching for smoother scrolling in the event browser
• Camera grid now refreshes periodically even when live preview is disabled
• Fixed text visibility in dark mode on camera cards
1.3 12/19/2025
This update brings new customization options and navigation improvements to Kapal:
• Object Overlays: Added a new setting to show or hide the red object detection tags on your camera previews.
• Swipe to Dismiss: You can now swipe down to close the full-screen camera view.
• Cloudflare Support: Added preliminary support for Cloudflare Tunnels.
If you run into any issues with these new features or have feedback, please reach out to hey@judeworks.app.
1.2.1 12/11/2025
Faster browsing, smarter filters, and a smoother experience
What’s new
• Faster event loading: Events now appear quicker so you can start browsing right away.
• Smarter filters: Camera and object filters are built automatically in the background and stay accurate without extra steps.
• Date range filters: Easily pick a start and end date (with simple defaults like “start of day” and “end of day”) to narrow what you see.
Thanks for using Kapal! If you have feedback or requests, we’re listening.
1.2 10/14/2025
This update introduces full compatibility for Frigate 0.16, powerful new filtering options, and a streamlined user experience.
Key Updates:
• Frigate 0.16 Compatibility: Kapal is now fully compatible with the latest version of Frigate.
• Multi-Select Filtering: Filter events with greater precision by selecting multiple cameras and object types simultaneously.
• Streamlined Connectivity: Connection handling has been fine-tuned to be more resilient to intermittent network drops.
• Overhauled Onboarding: The first-time setup process has been completely redesigned with clearer instructions, guided help, and more reliable network permission handling to ensure a successful connection.
1.1 09/02/2025
Fixed additional connection issues that prevented some users from connecting to their servers over certain connection types.
more Version 1.7.5 May 30
Data Not Collected The developer does not collect any data from this app.