LocalSend
Homepage • Discord • GitHub • Codeberg
LocalSend is a free, open-source app that allows you to securely share files and messages with nearby devices over your local network without needing an internet connection.
- About
- Sponsors
- Screenshots
- Download
- How It Works
- Dependency Hierarchy
- Getting Started
- Command Line Interface
- Contributing
- Troubleshooting
- Building
About
LocalSend is a cross-platform app that enables secure communication between devices using a REST API and HTTPS encryption. Unlike other messaging apps that rely on external servers, LocalSend doesn't require an internet connection or third-party servers, making it a fast and reliable solution for local communication.
Sponsors
Browser testing via
Screenshots

Download
It is recommended to download the app either from an app store or from a package manager because the app does not have an auto-update.
| Windows | macOS | Linux | Android | iOS | Fire OS |
|---|---|---|---|---|---|
| Winget | App Store | Flathub | Play Store | App Store | Amazon |
| Scoop | Homebrew | Nixpkgs | F-Droid | ||
| Chocolatey | DMG Installer | Snap | APK | ||
| EXE Installer | AUR | ||||
| Portable ZIP | TAR | ||||
| DEB | |||||
| AppImage |
Read more about distribution channels.
Windows binaries are signed. Read more about the Code signing policy.
[!CAUTION] Unofficial MSIX preview: you can try builds from the latest commits at localsend.ob-buff.dev. Stability is not guaranteed and all custom code tweaks are listed on that site.
Compatibility
| Platform | Minimum Version | Note |
|---|---|---|
| Android | 5.0 | - |
| iOS | 12.0 | - |
| macOS | 11 Big Sur | Use OpenCore Legacy Patcher 2.0.2 (See #1005) |
| Windows | 10 | The last version to support Windows 7 is v1.15.4. There might be backports of newer versions for Windows 7 in the future. |
| Linux | N.A. | Deps: Gnome: xdg-desktop-portal and xdg-desktop-portal-gtk, KDE: xdg-desktop-portal and xdg-desktop-portal-kde |
Setup
In most cases, LocalSend should work out of the box. However, if you are having trouble sending or receiving files, you may need to configure your firewall to allow LocalSend to communicate over your local network.
| Traffic Type | Protocol | Port | Action |
|---|---|---|---|
| Incoming | TCP, UDP | 53317 | Allow |
| Outgoing | TCP, UDP | Any | Allow |
On Linux, for example with ufw: sudo ufw allow 53317. With firewalld: sudo firewall-cmd --permanent --add-port=53317/tcp, sudo firewall-cmd --permanent --add-port=53317/udp, then sudo firewall-cmd --reload.
Also make sure to disable AP isolation on your router. It should be usually disabled by default but some routers may have it enabled (especially guest networks). See troubleshooting for more information.
Portable Mode
(Introduced in v1.13.0)
Create a file named settings.json located in the same directory as the executable.
This file can be empty.
The app will use this file to store settings instead of the default location.
Start hidden
(Updated in v1.15.0)
To start the app hidden (only in tray), use the --hidden flag (example: localsend_app.exe --hidden).
On v1.14.0 and earlier, the app starts hidden if autostart flag is set, and the hidden setting is enabled.
How It Works
LocalSend uses a secure communication protocol that allows devices to communicate with each other using a REST API. All data is sent securely over HTTPS, and the TLS/SSL certificate is generated on the fly on each device, ensuring maximum security.
For more information on the LocalSend Protocol, see the documentation.
Dependency Hierarchy
Getting Started
To compile LocalSend from the source code, follow these steps:
- Install Flutter directly or using fvm (see version required)
- Install Rust
- Clone the
LocalSendrepository - Run
cd appto enter the app directory - Run
flutter pub getto download dependencies - Run
flutter runto start the app
[!NOTE] LocalSend currently requires an older Flutter version (specified in .fvmrc) and thus build issues may be caused by a mismatch between the required and the (system-wide) installed Flutter version.
To make development more consistent, LocalSend uses fvm to manage the project Flutter version.