Moving a file from an iPhone to a Windows laptop usually means emailing it to yourself, or uploading it to a cloud drive so it can come straight back down again. LocalSend removes the round trip: pick the device, send the file, done — over your local network, with no account and no internet connection.

Windows, macOS, Linux, Android, iOS, and Fire OS, all talking to each other. Apache 2.0.

Install

Prefer a package manager or app store — the app has no auto-update, so a store keeps it current.

  winget install LocalSend.LocalSend      # Windows
brew install --cask localsend           # macOS
flatpak install flathub org.localsend.localsend_app
  

Android is on Play and F-Droid, iOS on the App Store; .deb, .rpm, AppImage, Snap, AUR, and Nixpkgs builds all exist.

How it works

Devices discover each other on the LAN and transfer over a REST API on port 53317, encrypted with HTTPS using a TLS certificate each device generates for itself. No server sits in the middle, so nothing is uploaded, nothing is retained, and speed is whatever your network can do rather than whatever your upload link can do. The protocol is documented and open.

From the terminal

  localsend-cli send report.pdf photo.jpg ./project-backup
localsend-cli send --to "Cute Tomato" report.pdf
localsend-cli send --to 192.168.27.26 report.pdf
  

Without --to it shows the discovered devices and you pick one. Directories are collected recursively and their structure is preserved on the receiver — though empty directories aren’t sent, because the protocol moves files, not folders.

When it can’t see the other device

This is the one problem you’ll actually have, and it’s almost always the network rather than the app:

SymptomUsual cause
Nothing appears, any platformAP isolation on the router — it forbids device-to-device traffic
Nothing appears, receiving on WindowsThe network is set to “public”; switch it to private
Nothing appears, sending from macOS or iOSToggle the Local Network permission in Privacy settings
Nothing appears, VPN runningAllow LAN traffic, or drop the VPN for a moment
Still nothingSend manually to the receiver’s IP, then favourite the device so it’s probed directly
Transfers crawlUse 5 GHz rather than 2.4, and consider turning encryption off on both ends

That last one is a real trade: the speed comes from skipping TLS, which is fine on your own network and not fine on a café’s.

Where it fits

Tailscale puts your machines on one private network wherever they are; LocalSend moves a file between two devices already sitting on the same one. If the phone and the laptop are in the same room, this is the shorter path — and it’s the tool to reach for when the file is too big to email and too private to upload.

Next

For pulling data out of sites instead of pushing requests at them → AutoCLI

Last updated 07 Sep 2026, 00:00 UTC. history