qrs: Transfer Data Through Sequences of QR Codes

Summary
Qrs encodes data as a stream of QR codes so a receiver can reconstruct it even when some frames are missed. It is suited to file transfers across devices when a direct network connection is inconvenient or unavailable.
At a glance
- Language
- TypeScript
- License
- MIT
- Stars
- 1.7k
- Forks
- 108
- Added to OSRepos
- April 3, 2026
- Last analyzed
- October 3, 2026
Topics
Click on any tag to explore related repositories
Use at your own risk
OSRepos shares public repositories for knowledge and discovery only. Any installation, execution, configuration, or use of code from these repositories is the user's own responsibility. Always review the repository, source code, dependencies, licenses, and security implications before running or installing anything. OSRepos is not responsible for issues, damages, or losses resulting from third-party repositories.
Overview
Qrs transfers data by encoding it into a sequence of QR codes. Its fountain-code approach lets a receiver recover the original data after collecting enough encoded frames, rather than requiring every frame to arrive.
The project includes a web app and related packages for generating QR streams, decoding Luby Transform data, and using file transmission from a CLI. It is useful when a visual, camera-readable transfer is preferable to connecting devices over a network.
Key Features
- Stream file data as a sequence of QR codes.
- Use Luby Transform fountain coding to tolerate missed frames.
- Try the transfer flow in the live demo.
- Use the QiFi CLI package for QR-code file transmission.
- Use the
luby-transformpackage for encoding and decoding. - Generate QR-code streams with the
@qifi/generatepackage. - Export a QR sequence as an animated GIF, with a recovery check before download.
Use Cases
- Transfer a file between devices using a camera when a network transfer is inconvenient.
- Share data in settings where some QR frames may be missed, such as a changing display or imperfect camera capture.
- Generate a QR animation for offline presentation or playback, then have a receiver scan enough frames to recover the data.
- Integrate QR-stream file transfer into command-line workflows using the QiFi CLI package.
Project Facts
- Language: TypeScript
- License: MIT
- Stars: 1.7k
- Forks: 108
- Topics: qrcode, transfer-files
- Archived: No
Getting Started
Try the live demo. To build and run the project locally, install dependencies with pnpm install, then follow the README for build and serving instructions.
Considerations
- This is a visual transfer method, so the receiver needs a camera or other way to capture the QR sequence.
- Recovery requires collecting enough encoded frames. Missed frames are tolerated, but camera scanning can still fail to capture enough usable data.
- The README notes that longer GIF exports take more time and memory, and recommends increasing the frame count if the export cannot be decoded.
- Local development requires Node.js and pnpm. Static hosting may require correct JavaScript MIME types, as described in the README.
Found this useful?
Share it with someone who would like qrs.
Source repository
Open the original repository on GitHub.
22 counted GitHub visits
Related repositories
Similar repositories that may be relevant next.

agentwatch: Monitor AI Agent Activity Locally
October 6, 2026
agentwatch combines logs from multiple coding agents into a local timeline with event details, cost tracking, alerts, and search. It suits developers who run several agents and want visibility without sending data to a cloud service.

image-blaster: Turn Images into 3D Environments and Assets
October 5, 2026
image-blaster uses Claude skills and external generation services to turn an image into a 3D environment, object meshes, and sound effects. It is designed to quickly create starting points for game, 3D, and web projects.

OrcaReplay: Record and Replay AI Agent Runs
October 2, 2026
OrcaReplay records AI agent runs so developers can inspect what happened, replay interactions offline, and fork a run from a checkpoint onto another model. It is a TypeScript CLI for debugging and comparing agent behavior without modifying the agent.

openmake_llm: Coordinate AI Models, Agents, and Tools
October 1, 2026
OpenMake is a self-hosted AI workspace that coordinates chat models, agents, and tools in one place. It suits people who want multi-step AI workflows with local or open-weight models, while keeping infrastructure and model choices under their control.