
qrcp
Send files from your computer to a phone over Wi-Fi by scanning a QR code, from the terminal.
- Stars
- 10.5k
- Forks
- 550
- Licence
- MIT
- Language
- Go
- Last update
- 1 months ago
- Type
- CLI
What it is
qrcp is a command-line tool that serves a file from your computer over your local Wi-Fi network and prints a QR code. You scan the code with your phone, and its browser downloads the file. It can also run in reverse, serving an upload page so a phone can send files to your computer. The README says it works without prior configuration.
- Send a PDF to a phone: qrcp MyDocument.pdf
- Send several files at once: qrcp MyDocument.pdf IMG0001.jpg
- Send a folder, or zip it first with --zip
- Receive files from a phone into the current directory with qrcp receive
Great for
- People who want to move a file to a phone without email, cables, or cloud storage
- Developers who already work in a terminal and want a quick transfer step
- Users on the same Wi-Fi network as their phone
- Anyone sending a folder or several files at once
Not ideal for
- Transfers between devices on different networks, since the README describes transfers over the local Wi-Fi interface
- Users who need a graphical app, since it is used only from the terminal
- Situations needing a persistent sync or cloud backup, since it is a one-off transfer tool
How to get it
- 1
Install with a package manager
Install with Go (latest development version, requires Go 1.18+)
go install github.com/claudiodangelis/qrcp@latestInstall with Homebrew (macOS)
brew install qrcpConfirm installation
qrcp --help - 2
Run it
- Install qrcp using one of the methods above.
- Run qrcp --help to confirm it works.
- Run qrcp MyDocument.pdf in the folder with your file.
- Scan the printed QR code with your phone's camera or a QR app, and the file downloads in the phone's browser.
- 3
Get the most out of it
- Use a config file at $XDG_CONFIG_HOME/qrcp/config.yml, or pass one with --config, to set defaults such as port, output directory, and interface.
- Use -i to choose a network interface, for example qrcp -i tun0 MyDocument.pdf, or -i any to bind to all interfaces.
- Use qrcp receive --output=/tmp/dir to pick where received files are saved.
- Enable HTTPS with --tls-cert and --tls-key if you have a certificate.
- Enable shell completion for Bash, Zsh, or Fish using the commands in the README.
Downloads
Strengths
- Simple workflow: one command prints a QR code and the phone does the rest
- Works with common platforms via prebuilt binaries and many package managers
- Configurable through a config file, environment variables, and flags
Trade-offs
- The README describes it as a local Wi-Fi tool, so it does not cover transfers beyond the local network
- Secure HTTPS mode requires you to supply your own TLS certificate and key
- The README is truncated, so some details of behavior and limits are not confirmed here
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| qrcp (this) | 10.5k | CLI | beginner | 1 months ago | People who want to move a file to a phone without email, cables, or cloud storage |
| micro | 29.8k | App | beginner | 4 days ago | People who work mostly in a terminal and want an easy editor |
| shiori | 11.7k | App | beginner | 10 days ago | People who want a self-hosted alternative to Pocket for saving articles |
| usql | 10.2k | CLI | beginner | 4 days ago | Developers who use several different databases and want one tool for all of them |
| croc | 40.8k | CLI | beginner | 4 days ago | People who need to send a file to someone without setting up a server, accounts, or port forwarding |
| broot | 13.1k | CLI | intermediate | 5 days ago | Developers who work in a terminal and often jump between project folders |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.