C:\> qrshare.exe

Send anything to
your phone.One command.

Serve a file, folder, or text over your wifi and scan the QR. The transfer runs in your phone's browser.

no app · no account · no cloud

Modes

Auto-detect

Files out. Files in. Text either way.

qrshare reads what you give it and picks the right mode. Force it with a flag when you want to.

DefaultC:\> qrshare report.pdf

Send a file

The phone downloads it with the original filename. Any size streams, so a 4GB video never touches memory. The server shuts down after the download.

FolderC:\> qrshare ./photos

Send a folder

Zipped on the fly and streamed. Never buffered to disk.

InboundC:\> qrshare

Receive

Scanning opens an upload page. Phone photos land on your laptop.

PipeC:\> echo $API_KEY | qrshare

Share text or a URL

Pipe it in or pass it as an argument. The phone shows the text with a one-tap copy button that works even over plain HTTP.

How it works

Same wifi, direct route

How it works

Both devices are on the same wifi, so the phone reaches your laptop directly. Nothing routes through the internet.

01

Run the command

qrshare starts a tiny web server on your wifi network and prints a QR code right in your terminal.

02

Scan the QR

Point your phone's camera at it. No app to install, just the browser you already have.

03

Transfer in the browser

The file downloads, the upload lands, or the text appears with a copy button. Then qrshare exits.

Why it is different

Local by default

Local by design, not by accident.

LAN-ONLY

Nothing leaves your wifi

Cloud bytes never touch the internet

No relay, no NAT traversal, no cloud upload. The phone talks straight to your laptop's LAN address. The bytes never touch the internet.

Picks the right interface

Docker, VPN, and wifi all active? qrshare resolves the address your phone can actually reach, and warns when the only route is a tunnel it cannot.

Streams any size

Send or receive a multi-gigabyte file with flat memory use on both ends.

Unguessable URL

Every share carries a random token. A bare scan of your IP gets a 404.

One static binary

A single Go binary with no runtime dependency. Drop it on your PATH.

Install

One binary

Install

One binary, no dependencies. Pick whichever fits your setup.

Homebrewbrew install edaywalid/tap/qrshare
Gogo install github.com/edaywalid/qrshare/cmd/qrshare@latest
ThenC:\> qrshare report.pdf

Latest release v0.1.0. Prebuilt binaries for macOS and Linux (amd64 and arm64) are on the releases page.