REX Technologies Flint

Phone or PC → Fire TV

Cast to your Fire TV from the device in your hand

Flint turns a Fire TV into a screen for your Android phone or your Windows PC, over your own network. It checks what your hardware can actually do together and says so plainly, before you spend any time on it. No account, no cloud, no analytics.

Pick the device you are installing on.

Download

Flint for Android or Windows

Android 8.0 or newer for the phone app. Windows 10 or 11, 64-bit, for the PC app. The Fire TV receiver is installed from either, never from here.

See every release

Every build is published by CI from this repository. Pick a device above to see the one for it.

Rolling build

Flint for Android

Android 8.0 or newer. The phone is the host.

Rolling build

Flint for Windows

Windows 10 or 11, 64-bit. Installs for your account, with no administrator prompt.

Installed from the phone or PC

The receiver, on the TV

Nothing to download on the television. The phone app installs it over ADB and shows what it installs first.

Flint offers only the modes your particular phone or PC and television can manage together, and never a button that does nothing. What is proven on real hardware and what is not is listed under Status.

Read this first

Your Fire TV model decides everything

Check the television before you download anything. It takes ten seconds and it decides whether the rest of this page is worth your time.

On the TV: Settings → My Fire TV → About

What it saysWhat that means
Fire OS 6, 7 or 8 Good. It is Android underneath, so Flint can put its receiver on it. Mirroring and media handoff from Windows are proven end to end on a Fire TV Stick running Fire OS 6.
Fire OS 14 or 16 Also Android underneath. The receiver should install; no device of this generation has been tested, and Flint says so rather than assuming.
Fire OS 5 Stop. It is Android, but Android 5.1 - older than the Flint receiver can be installed on. The television's package manager refuses the app outright, and Amazon has never offered these devices a newer version.
Vega OS, or no version Stop. Flint cannot work on this device, and no future version will change that.

Vega OS is a Linux system Amazon built in-house. It is not Android, it cannot install apps from outside Amazon's store by any method, and Flint's whole approach depends on installing a receiver. Devices known to ship with it are the Fire TV Stick 4K Select (October 2025) and the Fire TV Stick HD (2026). Fire OS 5 is refused for a different reason and by the same rule: the receiver needs Android 7.1, and Flint will not offer an install it knows the television must reject.

How it works

Three pieces, two ways to cast

One receiver on the television. Either a phone or a PC as the host. The host finds the TV, pairs with a six-digit code shown on the screen, and sends it a picture over the local network.

Flint for Android

The phone is the host

Turn on the phone's hotspot, join the TV to it, and cast over that link. Mirror the phone's screen with its sound, hand the TV a video file to play at original quality, or give it a second screen the phone drives while staying free for other things. No router needed, and the setting that silently breaks casting on shared Wi-Fi, client isolation, does not apply.

Flint for Windows

The PC is the host

Mirrors the desktop with its sound and the mouse pointer, using hardware H.264 encoding, or hands the TV a local media file at original quality. Pick the display and the picture mode, pause without stopping, and keep sharing from the notification area with global shortcuts. Capture, colour conversion and encoding run on the GPU, in Rust, with nothing allocated on the frame path. The picture is proven end to end on a Fire TV Stick.

The receiver

Flint on the TV

A small app the host installs over ADB, after the television's own authorisation prompt is accepted with the remote. It decodes what the host sends, shows the pairing code, and is fully operable from the remote. Whatever installs it also offers to remove it.

Honest by construction

Before offering any mode, Flint probes the host and the television and measures the path between them. A mode is offered only when every piece it needs has been checked; otherwise the app says which check failed and what to do about it. The phone app goes further and checks its own encoder by drawing a test pattern through it and decoding the result, because a list of codec names has already passed once for an encoder that produced nothing.

Install

Step by step, for your device

  1. Download the APK on the phone

    Use the button at the top of this page, or open the latest release and pick the Flint-Mobile-*.apk file. It needs Android 8.0 or newer.

  2. Open it and allow the install

    Android will ask whether to allow installing apps from your browser. Allow it, and turn that permission off again afterwards if you would rather. It will then warn about an unknown developer. That warning is accurate rather than a formality: the app is not in a store, and is signed by a key no store has vouched for. Building from source avoids the warning and is the same code.

  3. Turn on the phone's hotspot and join the TV to it

    On the TV: Settings → Network, then choose the phone's hotspot. Joining both to the same Wi-Fi also works; Flint will say so, and will warn you if that network keeps its devices from seeing each other.

  4. Open Flint and let it look

    The Cast screen says which end of the network the phone is on, finds the television, and reports what the two can do together. If the TV has no receiver yet, Settings offers to install one over ADB, showing the package name, version and size before it does. That needs ADB debugging on the TV and the prompt it shows accepted with the remote.

  5. Pair with the code on the TV

    Open Flint on the television and type the six-digit code it shows into the phone. The pairing is remembered, and the Settings screen has one button that forgets every television, for a phone that is being lent or handed on.

Flint never asks for location permission, because it never scans for Wi-Fi networks. It reads its own network interfaces, which needs no permission at all.

If nothing is found

Some networks stop devices seeing each other. Guest networks, most corporate networks, and access points with client isolation all block the discovery Flint relies on. The phone's own hotspot never does.

  • Check that the host and the TV are on the same network, and that it is not a guest network.
  • Get the TV's address from Settings → My Fire TV → About → Network and type it into the address field on the Cast screen. If the TV has no receiver yet, the phone will still identify it over ADB and offer to install one.
  • On Windows, run flint.exe --services from the Flint folder. If it lists nothing at all, the network is the cause rather than the television.

Status

What works today, and where it was proved

Flint is under construction and says so. A mode that is not finished is labelled in the app rather than offered as a control that does nothing, and nothing here claims a device it has not touched.

CapabilityStatusEvidence
Windows: capability report Working Finds the TV, identifies its OS over ADB, probes encoders and adapters, measures the path.
Windows: screen mirroring Working Desktop Duplication capture, GPU colour conversion, hardware H.264 encode. Proven end to end on a Fire TV Stick (Fire OS 6).
Windows: media handoff Working A local file pushed to the receiver and played at original quality. Proven on the same Stick.
Windows: second screen Unavailable An extra desktop rather than a copy of this one needs a display driver Windows will install only once it is signed by a trusted certificate. Flint will not ask anyone to disable driver signing.
Android: hardware checks Passed on a phone The private-display check and the encoder listing both passed on one phone. The newer encoder check, which decodes a real frame, has not yet been run on hardware.
Android: pairing, second screen, mirror with sound, media handoff Built, untested on a TV Every path is wired end to end and gated by tests that run on every change. None has been run against a television yet, and the app's own copy says so.
Android: installing the receiver over ADB Built, untested on a TV Tested against a scripted device that speaks the real ADB framing. The television's authorisation prompt has not yet been shown to a phone.
Wire protocol Working Implemented in Rust, C# and Kotlin, held byte-identical by a committed cross-language vector corpus.
Latency Not measured No glass-to-glass figure has been measured with a camera, so none is quoted. A TV's own picture processing commonly adds more delay than the whole pipeline; Game Mode matters more than any host-side tuning.

How it is built

Opposite requirements, kept apart

Rust

The frame path on Windows

Capture, colour convert, encode, packetize, send. A garbage-collector pause landing inside a 16.6 ms frame budget is a stutter you can see, and this side has no collector to pause.

C# and Avalonia

The Windows shell

Discovery, pairing, installation, diagnostics and the interface. Never in the frame path, so it lives where the tooling and the tests are better.

Kotlin

The phone app and the receiver

The Android host and the Fire TV receiver share one wire protocol module and one visual system with the desktop. The phone encodes with the platform's hardware codecs; the receiver decodes with the television's.

Privacy

Nothing leaves your network

  • No account, no cloud relay, no analytics, no crash reporting. This page makes one request, to GitHub, to find the newest download.
  • Network activity is local discovery and local session traffic only.
  • Flint reads from your TV to identify it, and never installs, replaces or removes anything without showing you what and why first.
  • The phone app never asks for location. It never scans for Wi-Fi networks, so it never needs to.
  • Session tokens authorise a receiver; they do not encrypt anything. Nothing here describes local traffic as private or encrypted, because it is not yet.