For Reolink NVRs & cameras

Your cameras, where you actually are

Kestrel is a camera client for Reolink NVRs and cameras — a Linux desktop app, a Roku channel, and a Roku screensaver, built from one codebase and one design. It talks straight to your device over your own network. No cloud account, no third-party servers, nothing leaving your home.

Local network only · No cloud account · Independent — not affiliated with Reolink

The Kestrel camera wall on a TV: twelve camera tiles in a grid, each captioned with its camera name, one highlighted in copper.

The camera wall on Roku. Camera imagery is stand-in stock footage, not real cameras.

Three ways to watch

One product, on the screens you have

The desktop client and the TV clients share a palette, a wordmark and a way of working, so moving between them needs no relearning.

Linux desktop · Free

Kestrel for Linux

The full client: every camera at once, playback of recorded footage, PTZ, snapshots and recording. A single AppImage — no system ffmpeg, GStreamer or VLC to install.

  • Paged grid of 1, 4, 6, 9 or 16 cameras
  • Calendar playback with scrubbing and download
  • Motion and AI events with desktop notifications
  • Passwords in your system keyring
About the desktop app

Roku channel · Paid

Kestrel for Roku

Your camera wall on the TV, driven entirely from the remote. Open any camera full screen, pan and tilt with the D-pad, and jump to saved presets. A one-time purchase on the Roku Channel Store.

  • Camera wall that expands when you stop pressing keys
  • Follow motion — the TV shows whatever is happening
  • PTZ, presets, infrared and spotlight control
  • Optional HLS for full-motion video
About the Roku channel

Roku screensaver · Free

Kestrel Screensaver

An idle TV becomes a wall of your cameras, tiled edge to edge and dimmed for a dark room. No settings of its own — it reads the ones you entered in the app, and it costs nothing on top of it.

  • Every camera at once, no interface over the top
  • Softly dimmed so it never lights the room
  • Set up once, in the Kestrel app
  • Installed from the Roku screensaver list
About the screensaver
Local by construction

Nothing leaves your network

This is not a policy decision that could be quietly reversed in an update — it is how the software is built. Kestrel has no servers, so there is nowhere for your video to go.

No account, ever

There is no Kestrel sign-up, licence key or login. You enter your own device's address and your own credentials, and that is the whole setup. Buying the Roku channel happens in your Roku account, where the store handles the entitlement — we never see it.

Direct to the device

Kestrel speaks your camera's documented local HTTP API and RTSP. It does not use Reolink's P2P cloud relay, which means it works only on your own network — the trade-off is deliberate.

No analytics, no telemetry

No usage reporting, no crash pings, no advertising frameworks. The Roku channel deliberately declines the marketing pixel Roku's static analysis suggests.

Credentials stay put

On Linux, passwords go to your system keyring over Secret Service. On Roku they go to the channel's private registry — which is not encrypted, and the app says so.

Your video is your video

Snapshots, recordings and downloads are written to a folder you choose. Nothing is uploaded, copied or indexed anywhere.

Open about what it can't do

The limitations below are on the front page rather than buried in a support article, because knowing them in advance is the difference between a useful tool and a disappointing one.

What it does

Built for watching, not configuring

Kestrel covers the parts of a camera client you reach for daily. Your device's own web UI keeps the parts you touch once a year.

Follow motion

One button puts the action on screen. Kestrel watches every camera and shows whichever ones are detecting something — several at once as a grid when more than one is active — then hands back to the normal view when everything goes quiet.

Each camera holds its place for a dwell period after it stops detecting, because detection flickers constantly during a real event and without dwell the layout would rebuild every few seconds. Twelve seconds by default, adjustable on both platforms.

A single camera filling the screen in Kestrel's full-screen live view.

PTZ that only appears when it works

Hold a direction to pan and tilt, zoom and focus, and recall the presets stored on the camera itself. Presets are re-read from the device each time you select it, so they match what the camera actually has.

Controls are drawn from the capabilities the device reports, so a fixed camera never offers buttons that would only produce errors. Dual-lens cameras such as TrackMix appear as one camera, with the telephoto lens a zoom step away rather than a second entry.

Kestrel's camera controls menu over a live camera view, listing presets and light controls.

An NVR is just more cameras

Point Kestrel at an NVR and every channel appears as its own tile. Standalone cameras and NVR channels sit side by side in one grid, and you can add as many devices as you like.

Channels the device reports as offline — usually unpopulated NVR slots — are hidden by default, so an eight-channel box with four cameras does not show four dead tiles.

Kestrel's connect screen asking for host or IP address, username and password.
How it works

Three things, then you are watching

  1. Install the client Download the AppImage for Linux, or install Kestrel from the Roku Channel Store on your TV. Neither needs root, a package manager or a build step.
  2. Point it at your device Enter the address of your NVR or camera on your LAN, with a username and password. Both clients check the details against the device before saving.
  3. That's it Every channel the device reports appears as a tile. Settings persist, and the Roku screensaver picks up the same details automatically.

Use a dedicated camera account

Create a non-admin user on your Reolink device for Kestrel rather than reusing admin. Reolink's per-user permissions are coarse, but a limited account still limits the damage if the credentials get out. PTZ and light controls do need an account with control rights.

Before you install

What Kestrel does not do

Worth knowing in advance. None of these are on a roadmap to be fixed shortly — most are fixed properties of the platforms involved.

Local network only

Kestrel reaches your device directly over HTTP and RTSP, so your Roku or PC must be on the same network. It cannot use Reolink's P2P/UID cloud relay, which is an undocumented proprietary protocol. Do not port-forward your NVR to the internet to work around this.

Roku live view is snapshots

Roku cannot play RTSP, RTMP or HTTP-FLV — the only live formats Reolink devices produce. On TV, live view is a rapid sequence of camera stills, with no audio, unless you run your own restreamer and give the channel an HLS URL.

Events are polled, not pushed

The documented API has no push channel, so detections are sampled every couple of seconds. A detection shorter than the poll interval can be missed, and the event list starts empty each session because devices keep no queryable log.

No two-way talk

Not implemented on either platform — and a Roku has no microphone input in any case.

No device configuration

Recording schedules, detection zones and network settings are left to your device's own web UI. Kestrel views and controls; it does not administer.

Some NVR firmware won't serve playback

A few firmware versions list recordings but return no file handle for them. Those clips are shown greyed out with their real times and sizes rather than failing silently when you press play.

Download

Get Kestrel

The desktop client is free and open source. The Roku channel is a one-time purchase, with its screensaver included at no extra cost. No subscriptions, and no Kestrel account either way.

Linux desktop

Kestrel-0.1.0-x86_64.AppImage · 9.7 MB

A single self-contained file. Make it executable and run it — ffmpeg ships inside, so there is nothing else to install and no root required.

Download AppImage

Roku channel

Kestrel · One-time purchase

Coming to the Roku Channel Store. Buy it once from the store on your TV or from your Roku account on the web, and it stays on every Roku on that account. No subscription.

Coming soon

Roku screensaver

Kestrel Screensaver · Free

Free, and a separate store entry — Roku does not allow an app to carry its own screensaver. Install it alongside the app, then pick it under Settings → Screen saver.

Coming soon

Running the AppImage

chmod +x Kestrel-0.1.0-x86_64.AppImage
./Kestrel-0.1.0-x86_64.AppImage

Requires a 64-bit x86 Linux desktop. Password storage uses your desktop's keyring over Secret Service; without one, Kestrel tells you where the password ended up instead.

FAQ

Questions worth asking first

Is Kestrel made by Reolink?

No. Kestrel is an independent project and is not affiliated with, endorsed by, or supported by Reolink. It talks to Reolink hardware over that hardware's own documented HTTP API, and the Reolink name appears here only to say what Kestrel is compatible with. For help with Kestrel, contact us — not Reolink.

Which devices does it work with?

Reolink NVRs and cameras that expose the local HTTP API at /cgi-bin/api.cgi, which is most of the mains-powered range. Development and testing are done against an RLN36 NVR. Capability reporting varies by model and firmware: if a control you expect is missing, the device did not report supporting it.

Battery-powered cameras that sleep will show as offline until they wake.

Do I need to open ports on my router?

No — and please do not. Kestrel is designed to run on the same network as your cameras. Exposing an NVR's web interface to the internet is a well-established way to lose control of it. If you need access from outside, use a VPN back into your own network.

Why is the Roku picture not real video?

Because Roku's video player supports HLS, DASH, Smooth Streaming and progressive MP4, while Reolink devices publish RTSP, RTMP and HTTP-FLV. There is no overlap, and no way to bridge it on the device itself. Kestrel polls the camera's JPEG snapshot endpoint instead, which needs no extra infrastructure and works the moment you connect.

If you already run go2rtc, MediaMTX or Frigate, give the channel an HLS URL template and you get real video with audio.

Does Kestrel record continuously?

No. Your NVR or camera does the recording; Kestrel plays it back and can record the live stream on demand to a file. It is a viewer, not a recording system, and it does not need to be running for your cameras to record.

What does it cost?

The Linux desktop client is free and open source — licensed under the MIT and Apache 2.0 licences at your option, bundling ffmpeg under the LGPL as shared libraries.

Kestrel for Roku is a paid channel, bought once on the Roku Channel Store at the price shown there. Kestrel Screensaver is free, and needs the app to be useful.

There is no subscription, no recurring charge and no in-app purchase. Buying it once covers every Roku on your Roku account, and there is still no Kestrel account to create. Payment, receipts and refunds are handled by Roku, under their terms and ours.

Is there a Windows or macOS build?

Not today. The desktop client is built and tested on Linux, and the Rust rewrite it now ships as makes other platforms plausible rather than promised. Reolink's own Windows and macOS clients cover those desktops.

Where do my credentials go?

On Linux, into your system keyring via Secret Service, with the config file as a documented fallback when no keyring is available — the About dialog tells you which is in use. On Roku, into the channel's private registry, in clear text, because the platform offers nothing better. Anyone with your Roku's developer password could read them. The privacy policy covers this in full.