Skip to content
I Hate Online Tools

Air-gap transfer

Move small files between devices as a sequence of QR codes, no network involved.

Runs in this tab. The file stays here.

Enter text or choose a file to generate QR codes.

This runs in your browser. Nothing is uploaded.

About Air-gap transfer

Move a note or a small file between two devices as a sequence of QR codes, with no network connection, cable or server involved.

Sometimes two devices cannot share a network, or you do not want a secret to touch any server. Airgap transfer turns text or a small file into base64, cuts it into slices, and shows each slice as a QR code. The receiving device scans the codes with its camera, or from uploaded screenshots, and reassembles the original. Nothing leaves either screen except light.

On the Send tab, paste text or choose a file of up to 64 KB, then step through the codes with Previous and Next, or press Auto-play to advance one code every 1.2 seconds. The Chars per code slider runs from 150 to 1200 (500 by default): bigger slices mean fewer codes but denser ones that are harder to scan. Base64 adds about a third to the size, so a 20 KB file at the default setting is roughly 55 codes. Each code carries a small JSON header with a session id, its position and the total, which is why the receiver can take them in any order and see exactly which ones are missing.

On the Receive tab, scan with the camera or upload images, and watch the progress bar and the list of missing chunks. A code from a different session starts the transfer over. When every chunk is in, text appears in a box and the Download button saves the result under its original filename. There is no encryption, no checksum beyond the QR error correction, and no acknowledgement back to the sender. Anyone who can see or photograph the screen can read the content, so use it only where the room is trusted.

How to use Air-gap transfer

  1. 1On the sending device, open the Send tab and paste text or choose a file under 64 KB.
  2. 2Lower Chars per code if the receiver struggles to scan, then press Auto-play or step with Next.
  3. 3On the receiving device, open the Receive tab and click Scan with camera, or upload screenshots of the codes.
  4. 4Wait until the counter shows every chunk, then download the result.

What it won't do

  • Text or a single file up to 64 KB.
  • No encryption and no acknowledgement back to the sender.
  • Both devices need this page open, plus a screen and a camera (or screenshots).

Common questions

How large a file can I send with airgap transfer?

Files over 64 KB are refused. In practice keep it to a few tens of kilobytes: at the default 500 characters per code, 64 KB is well over a hundred codes, and each one has to be scanned.

Is an airgap QR transfer encrypted?

No. The codes contain the data as plain base64. Anyone who can see or photograph the sender's screen can rebuild it. Encrypt the text first if the room is not trusted.

What if I miss a code while scanning an airgap transfer?

The receiver lists the missing chunk numbers. Step the sender back to those chunks with Previous and Next and scan them again; order does not matter, and scanning a code twice is harmless.

Why won't the receiver read my airgap QR codes?

Try a lower Chars per code value, which makes each code simpler, then increase screen brightness and hold the camera steady. Uploading screenshots avoids camera focus problems.

Related tools

Why this one doesn't upload your file

There is no server to upload to. This page is a static file, and the work happens in your browser using the same graphics and WebAssembly code that renders every other site you visit. Your file is read from disk into memory, processed, and handed back as a download. Once the page has loaded you can disconnect from the network entirely and it keeps working. The longer explanation

Install the app