Move a file between two old phones that have no working Bluetooth or NFC
Send a small file to a device with no internet or LAN access, using only a camera and a screen
Recover one specific missing chunk during a slow transfer without restarting the whole loop
| unprovable/shadowcat | keyai/calculusmadeeasy-zh | giovapanasiti/active_canvas | |
|---|---|---|---|
| Stars | 211 | 215 | 204 |
| Language | HTML | HTML | HTML |
| Setup difficulty | easy | easy | moderate |
| Complexity | 2/5 | 1/5 | 2/5 |
| Audience | general | writer | developer |
Figures from each repo's GitHub metadata at analysis time.
Camera access needs HTTPS or localhost, iOS Safari requires HTTPS even over a local network.
ShadowCat is a single HTML file that lets you transfer files between two devices using only their cameras and browsers, with no internet connection, no Bluetooth, no NFC, and no cable required. The intended use case is old phones whose wireless radios have stopped working but whose cameras and screens still function. The way it works: the sending device breaks a file into small chunks and displays them one after another as a series of QR codes on screen, cycling through them repeatedly at a speed you set. The receiving device points its camera at the sender's screen, scans the QR codes as they appear, and pieces the file back together. A grid on the receiver shows which chunks have arrived and which are still missing, so you can wait for the sender to cycle around and fill in any gaps. Once all chunks have been received, the file's integrity is verified before a download button appears. The tool also has simpler tabs for generating and scanning single QR codes with short text, for quick copy-paste operations between devices. Because the HTML file needs camera access, browsers require it to be served over HTTPS or a local network address rather than opened directly as a file. The README explains how to serve it with a basic Python web server on your laptop, then visit it from the old phone on the same network. iOS Safari requires HTTPS for this to work cross-device. Transfer speed is slow by nature: roughly 0.8 to 1 kilobyte per second, so a 100 KB file takes about two minutes per loop of the QR cycle. The chunk size, frames per second, and error correction level are all adjustable to match what a given device can reliably scan.
A single offline HTML page that transfers files between two devices by flashing QR codes at a camera, for phones whose Bluetooth or NFC no longer works.
Mainly HTML. The stack also includes HTML, JavaScript.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.