What LocalSend Is: AirDrop Without the Walled Garden
LocalSend is a free, open source app for sharing files and messages with nearby devices over your local network, and it needs no internet connection to do it. It is the cross-platform answer to AirDrop: send a photo from an Android phone to an iPhone, a document from a Windows laptop to a Mac, or a video from a Linux desktop to a tablet, all without a cable, an account, or a cloud service in the middle. It has 98,900 stars on GitHub, it is licensed under Apache 2.0, and it runs on Android, iOS, Windows, macOS, Linux, and Fire OS. The pitch is simple. Every phone already knows how to share with its own kind, and almost none of them know how to share with the other kind. LocalSend fills that gap with one app on every device, and it does it without asking you to trust a server you have never heard of, because there is no server at all.
How It Works: Your Wi-Fi Is the Only Infrastructure
LocalSend devices find each other on the same local network and talk directly, using a REST API over HTTPS. Every device generates its own TLS certificate on the fly, so the transfer is encrypted end to end even though nothing ever leaves your network. There are no third-party servers, no upload step, and no account to create. The app listens on port 53317 for TCP and UDP traffic, which is the one detail worth knowing before you use it: if a device does not show up, your firewall is the usual suspect. On Linux, allow the port with your firewall tool, for example sudo ufw allow 53317, and check that AP isolation is off on your router, since some routers, especially on guest networks, block devices from seeing each other. A VPN can also hide local devices, so allow local traffic or pause it while you send. If discovery still fails, LocalSend lets you send to a device by its exact address instead, and the command line client can target an IP Check result directly. When devices on the same network cannot see each other at all, a DNS Lookup can help confirm whether the network itself is resolving names the way it should.
What You Can Send: Files, Folders, and Messages
LocalSend moves more than files. You can send photos, videos, documents, and whole folders, and directories are collected recursively with their folder names and nested paths preserved on the receiving side. You can also send a short text message, a link, or a snippet of text, which is handy when you want to move a URL or a code from your phone to your computer without emailing it to yourself. Text longer than 64 KB is sent as a .txt file instead, and you can read text from standard input on the command line. Sharing works from other apps too: use the system share sheet on your phone to send a photo or a file straight into LocalSend, and it appears on the destination device as a normal download. There is no file size limit in the app itself, so the only real constraint is your Wi-Fi. The README is upfront about one speed quirk on Android and recommends 5 GHz Wi-Fi, with encryption off on both devices if a transfer feels slow.
Every Platform, Every Store
LocalSend is on every major platform, and it is in the stores and package managers people already use. Windows users can install it from Winget, Scoop, Chocolatey, or the Microsoft Store, or grab the EXE installer or a portable ZIP from the releases page. On macOS it is in the App Store and Homebrew, with a DMG installer as well. Linux users get Flathub, Snap, Nixpkgs, the AUR, DEB packages, AppImages, and TAR archives. Android has the Play Store, F-Droid, and a direct APK, and iOS has the App Store. There is even a Fire OS build for Amazon tablets. The README recommends installing from a store or a package manager rather than a manual download, because the app has no auto-update. Minimum versions are reasonable: Android 7, iOS 15, macOS 12 Monterey, and Windows 10, with older releases still available for older systems. That breadth is the point. AirDrop works because Apple controls both ends, and LocalSend works because it refuses to care which ends you have.
The Command Line Client: LocalSend in a Terminal
There is also a terminal client, localsend-cli, built on LocalSend Protocol v2. On macOS and Linux you install it with Homebrew, then send files with a single command: localsend-cli send report.pdf photo.jpg ./project-backup. The command opens the discovered-device list so you can pick a destination interactively, or you can skip the list and target a device by its exact alias or IP address, for example localsend-cli send --to "Cute Tomato" report.pdf. To send text instead of a file, add --text, and pass a dash to read the text from standard input. That makes the CLI useful in scripts: pipe a command's output into a file on another machine, or move a build artifact to a phone without touching a GUI. The same 64 KB text rule applies, and standard input must be UTF-8 and no larger than 16 MB. The CLI is a separate small install from the app, and it speaks the same protocol, so a terminal on one machine and the app on another work together without any extra setup.
Portable Mode, Hidden Starts, and Staying Out of the Way
LocalSend has a few quiet features for people who run it all day. Portable mode, added in version 1.13.0, stores settings next to the executable instead of in the system settings folder: create an empty file called settings.json beside the app and it keeps everything there, which makes it easy to carry on a USB stick. You can also start the app hidden, so it sits in the system tray without opening a window, using the --hidden flag, and an autostart option does the same at login. Windows binaries are signed, and the signing policy is published in the repo, which is a small detail that matters for an app that opens a network port on your machine. The project is actively maintained, with CI, translations through Weblate, and a Discord community, and it is also mirrored on Codeberg for anyone who prefers it. None of this changes the core idea, which is that moving a file between your own devices should not require the internet, an account, or a subscription.
Getting Started in Two Minutes
Install LocalSend on the two devices you want to move files between, then open it on both. Each device shows its own name and the devices it can see on the network. Pick the destination, choose the files, and the transfer starts over HTTPS with a progress bar on both ends. If a device does not appear, check the three usual causes in order: the firewall on port 53317, AP isolation on the router, and an active VPN blocking local traffic. The receiver can save files to a chosen folder or let LocalSend pick the default download location. That is the whole setup. There is no account to make, no QR code to scan, no cable to find, and nothing to upload first. For anyone who regularly moves files between an Android phone and a Windows PC, or an iPhone and a Linux desktop, LocalSend removes a daily friction that most people have quietly accepted as normal.



