Turn your phone into a barcode scanner for your computer.
Point the camera at a barcode or QR code, tap Send, and it's typed into whatever is open on your computer.
No account. No cloud. No scan limits. Your scans never leave your Wi-Fi.
- Open ScanSend on your computer. It gets a fun name like Clumsy Thumbdrive.
- Open ScanSend on your phone. Computers on the same Wi-Fi show up by name. Tap yours.
- Click Accept on the computer. That's the whole setup, and it's remembered.
- Scan. The code freezes in the box so you can check it, then Send types it into the active window (and presses Enter or Tab if you like), just like a USB barcode scanner.
- Private by design. Phone and computer talk directly over your local network. There's no server, no sign-up, no analytics, and it works without internet.
- Free, with no limits. No scan caps, no per-computer licenses, no subscriptions.
- Connect by tapping a name. No QR codes to scan, no IP addresses to type.
- See it before it's sent. The camera freezes on the code in the box; nothing goes to the computer until you tap Send.
- Works where you work. Android and iPhone phones; Windows, Linux and Mac computers.
- Small and to the point. Scan, check, send. Recent scans with Copy, on both sides.
- Make it yours. Themes like Forest Green, Wayland Blue, Grape Purple and Ember Orange, on the phone and the computer.
Get the latest from the Releases page:
| Device | File | Notes |
|---|---|---|
| Android phone | ScanSend-…-android.apk |
Open it on the phone to install. Updates install over 0.4.0 and newer; uninstall a 0.3.x version once first. |
| Windows computer | ScanSend-…-windows-setup.exe |
Installs ScanSend and allows it through Windows Firewall, so it never asks. (…-windows-x64.exe runs without installing.) |
| Linux computer | ScanSend-…-linux-x64 |
chmod +x it, then run it. |
| iPhone | — | Not on the App Store yet; build it on a Mac (below). |
| Mac computer | — | Build it from source for now (below). |
The phone and computer need to be on the same Wi-Fi network. ScanSend uses UDP 53318 (finding computers) and TCP 53319 (scans). The Windows installer opens these for ScanSend (local network only); on Linux, the window offers to open them for you.
The ⚙ button opens Settings:
- When a scan arrives: type it into the active window, then press Enter, Tab or nothing; copy it to the clipboard; save it to a CSV file; any mix of these.
- Save it to a CSV file: every scan is added to
Documents/ScanSend/scans.csv(Date, Time, Phone, Format, Code), which opens in Excel. Barcodes with leading zeros stay intact. You can keep the file open while scanning: if Excel has it locked, new scans wait and are saved when you close it. - Start ScanSend when I log in.
- Themes: the same seven as the phone app.
Every connected phone is listed on the main window, with Unpair.
Running without a window: scansend --terminal (new phones are accepted by typing y).
Other options: --suffix enter|tab|none, --no-type, --no-clipboard, --name "Front Desk",
--list, --unpair-all.
proto/ the shared protocol (Rust)
receiver/ the computer app (Rust, egui)
mobile/ the phone app (Tauri 2: Rust core + one HTML page)
Computer: cargo run --release -p scansend-receiver
Android: install the Tauri 2 prerequisites, then
cd mobile && npm install
npx tauri android init
npx tauri android build --apk --debug --target aarch64iPhone (on a Mac with Xcode and a free Apple ID):
cd mobile && npm install
APPLE_DEVELOPMENT_TEAM=<your team id> npx tauri ios build --debugThe Xcode project is in the repo (mobile/src-tauri/gen/apple), so there's no ios init step.
Then install it from Xcode (open mobile/src-tauri/gen/apple/*.xcodeproj and press ▶).
Apps installed with a free Apple ID need reinstalling every 7 days.
The computer answers "who's there?" messages on UDP 53318 and serves a small HTTP API on
TCP 53319. The phone also checks each address on its Wi-Fi directly, which is what works on
iPhone: the whole subnet up to a /20 around the phone, plus the neighborhood of every computer
it's paired with, so on big networks adding one computer by address brings in the ones near it. Tapping a computer sends a connect request that waits until someone clicks Accept;
after that, every scan carries a token only that phone has. Details are in
proto/src/lib.rs.
MIT. Barcode reading on iPhone uses ZXing via barcode-detector (MIT).



