QR File Transfer

Stream files device-to-device via QR codes — no cloud, no apps, no cables.

1
Share link
2
Add files
3
Send
Files
📁

Drop files here or tap to browse

Up to 100 files · ~60 MB total in one optical stream · nothing leaves your device

Settings
💡 Frame rate and QR chunk size are auto-tuned to this device — clicking Send briefly renders a few test frames to itself to measure how fast it can paint, then locks in the fastest reliable setting. That's the whole "calibration" step: this device timing itself, before the receiver is even involved. Fountain-coded frames mean the receiver rebuilds the file from any ~15% extra frames, in any order, so nothing has to hear back before streaming starts.
QR Stream
Ready

Receiver scans this to open in receive mode

Frequently asked questions

Does QR File Transfer need an internet connection?

No. The sender streams QR frames and the receiver's camera decodes them straight off the screen — there's no network call on either device during the transfer, so it works fully air-gapped.

How large a file can I send?

Up to about 61 MB per transfer, across up to 100 files in one session. The exact ceiling depends on the chunk-size preset; Send validates this up front and suggests a preset that fits before you start.

What happens if the camera misses some QR frames?

Nothing breaks. The transfer uses fountain coding (an LT/Luby transform), so the receiver can rebuild the file from any sufficient set of distinct frames in any order — a missed or blurred frame just costs a little time, never correctness.

Which browsers support receiving a transfer?

Sending works in any modern browser. Receiving requires the BarcodeDetector API, supported in Chrome, Edge, and Chrome/Samsung Internet on Android (Chrome/Edge 83+). Firefox and Safari don't yet implement BarcodeDetector, so receiving isn't currently supported there.

Is any file data uploaded to a server?

No. Files stay entirely in browser memory on both devices. The only server call in the whole feature is an optional, one-way transfer-metadata log (filename, size, SHA-256) the site owner uses for their own records — it has no effect on whether a transfer succeeds.