Transfer files over Wi-Fi from your computer to a mobile device by scanning a QR code without leaving the terminal.
Desktop to mobile
Mobile to desktop
Go 1.8 is required to run.
go get github.com/claudiodangelis/qr-filetransfer
Installation through a package manager
How does it work?
qr-filetransfer binds a web server to the address of your Wi-Fi network interface on a random port and creates a handler for it. The default handler serves the content and exits the program when the transfer is complete.
The tool prints a QR code that encodes the text:
Most QR apps can detect URLs in decoded text and act accordingly (i.e. open the decoded URL with the default browser), so when the QR code is scanned the content will begin downloading by the mobile browser.
Note: Both the computer and device must be on the same Wi-Fi network.
On the first run,
qr-filetransfer will ask to choose which network interface to use to transfer the files. Choose the network interface connected to your Wi-Fi:
$ qr-filetransfer /tmp/file Choose the network interface to use (type the number):  enp3s0  wlp0s20u10
Note: On Linux it usually starts with
The chosen network will be saved and no more setup is necessary, unless the
-force argument is passed, or the
.qr-filetransfer.json file the program stores in the home directory of the current user is deleted.
Two transfers mode are supported: desktop-to-mobile and mobile-to-desktop
Desktop to Mobile
Transfer a single file
Zip the file, then transfer it
qr-filetransfer -zip /path/to/file.txt
Transfer a full directory. Note: the directory is zipped by the program before being transferred
Mobile to Desktop
If you want to use it the other way, you need to pass the
The first argument is the directory you want to transfer mobile files to.
qr-filetransfer -receive ~/Downloads
Specify the port to use for the web server
qr-filetransfer -port=8080 /path/to/my-file
Note: if the
-port argument is passed, the value is stored and used for all future transfers. Use
-force to reset the stored port value.
Tips & Tricks
Keep server alive
If you are trying to transfer a file that the browser on the receiving end is considering harmful, you can be asked by the browser if you really want to keep the file or discard it; this condition (browser awaiting your answer) can lead to qr-filetransfer disconnection. To prevent qr-filetransfer from disconnecting, use the
qr-filetransfer -keep-alive /path/to/my/totally/cool.apk
-quietignores non critical output
-forceignores saved configuration
-zipzips the content before transferring it
-portsets port to bind the server to
-receiveenables transfers from mobile to desktop
-keep-alivekeeps the server alive after completing the transfer
Check out the rules to claim one: rules of openlogos.
Clones and Similar Projects
- qr-fileshare - A similar idea executed in NodeJS with a React interface.
- instant-file-transfer (Uncredited) - Node.js project similar to this
- qr-filetransfer - Python clone of this project
- qr-filetransfer - Another Node.js clone of this project
- qr-transfer-node - Another Node.js clone of this project
- QRDELIVER - Node.js project similar to this
- qrfile - Transfer files by scanning a QR code
- quick-transfer - Node.js clone of this project
- share-file-qr - Python re-implementation of this project
- share-files (Uncredited) - Yet another Node.js clone of this project
MIT. See LICENSE.