FAQ¶
Does this upload my files to the internet?¶
No. The server runs on your own machine and binds to your LAN address. Files are transferred directly from your computer to the scanning device over your network. Nothing is uploaded to a cloud or relay service.
Why does the session exit after one download?¶
That's the default. A session stops after the first successful transfer unless you
pass --keep-alive, --max-downloads N, or --expire SECONDS (expiry implies
keep-alive). See cli.md.
Why is the advertised IP wrong?¶
The IP is auto-detected by probing your default route. If you have multiple interfaces (e.g. Wi-Fi + VPN + Ethernet) the detected address may not be the one your phone can reach. Fix it with:
qrtransfer -i wlan0 file
or pick from the interactive interface list that appears when the choice is
ambiguous. Settings are remembered for the next run — use --force to ignore them.
The QR code looks garbled in my terminal¶
qrcode-terminal prints ANSI escape codes. Use a monospaced font and a terminal
that renders them (Windows Terminal, GNOME Terminal, iTerm2). If your terminal
shows raw escape sequences, you can still copy the plain-text URL printed right
below the QR code.
Does the password keep the transfer secure?¶
The password gates access to the link, but on plain HTTP the password travels
in the URL and can be sniffed on a hostile network. Use --tls for encryption
in transit. The QR code embeds ?passed=... so scanning still works.
What does each HTTP error mean?¶
404— wrong token. The link is invalid, or has already been used/replaced.401— password missing or incorrect (token was right).403— transfer limit reached (--max-downloads).410— the link expired (--expire).413— upload exceeds--max-upload-size.411— upload without aContent-Lengthheader.
Can I send a file to someone not on my Wi-Fi?¶
Not out of the box. The tool only works on your local network. Remote access
requires manual port forwarding on your router (and then --password +
--tls are strongly advised). See deployment.md.
Why is the TLS certificate "not secure" in my browser?¶
--tls generates a self-signed certificate — browsers don't trust it by default,
so they show a warning you must accept. The connection is still encrypted. For a
trusted certificate you would need your own CA-signed cert passed via
--cert/--key.
Which platforms are supported?¶
Anywhere Python 3.9+ runs: Linux, macOS, and Windows. The CI matrix tests Python 3.9, 3.11, and 3.13 on Ubuntu, Windows, and macOS.
What is the relationship between qrtransfer and qr-filetransfer?¶
qrtransfer is the project name: the import package and the console script (the
PyPI distribution is qrtransfer-lite). The tool is a Python reimplementation of
the Go-based
qr-filetransfer tool, so
only the repository name of the original Go project still contains a hyphen.
Where is my transfer history stored?¶
In a local JSON file via platformdirs (the last 200 entries). Print it with
qrtransfer --history. Locations are listed in configuration.md.