Skip to content

Show HN: ShadowCat – file transfer through QR Codes in a Browser

6.3 relevance
Score Breakdown
technical depth
7
novelty
8
actionability
6
community
4
strategic
3
personal
7

Scored daily by a customisable AI persona to surface the most relevant engineering leadership news.

Novel technical tool, open source, file transfer via QR.

2026-05-22 open/source Hacker News (100+)
Single file optical file transfer using a browser. Contribute to unprovable/ShadowCat development by creating an account on GitHub.
Summary

ShadowCat is a fully offline, single-file HTML page that transfers files between devices by encoding data into QR codes displayed at configurable FPS and ECC levels, with chunk sizes up to ~500 characters yielding ~0.83 KB/s raw throughput. The receiver reconstructs the file from multiple cycles, deduplicating chunks and verifying CRC, and requires HTTPS or localhost for camera access—ideal for old phones with working cameras but broken radios.

Key Takeaway

Evaluate ShadowCat for low-throughput offline file transfers between devices with camera and browser access, but plan for HTTPS setup and expect ~1 KB/s speeds with multiple cycles for reliable delivery.

Why it matters

For a solutions architect, ShadowCat showcases a creative, browser-native offline transfer mechanism using QR codes, relevant for edge-case scenarios like legacy device data recovery or air-gapped environments without network infrastructure.

Full Article

ShadowCat A fully offline, single-file HTML page for moving data between two devices via QR codes — intended for old phones whose radios (BLE, NFC, etc.) arevdead but whose cameras and browsers still work. Tabs Generate — encode text into a single QR code. Scan — decode a single QR via the camera. Send file — pick a file, choose chunk size / FPS / ECC, hit Start. Cycles through [header, chunk1…chunkN] forever at the chosen FPS. Pause / Resume / Stop. Start from — begin the loop at a chosen frame index; it then continues forward and wraps back to the header normally.