Connect with us


LocalSend – An open source cross-platform alternative to AirDrop

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.


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 AUR F-Droid
Chocolatey DMG Installer NixOS APK
MSIX Installer TAR
Portable ZIP DEB

Read more about distribution channels.

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.

Getting Started

To compile LocalSend from source code, follow these steps:

  1. Install Flutter.
  2. Clone the LocalSend repository.
  3. Run cd app to enter the app directory.
  4. Run flutter pub get to download dependencies.
  5. Run flutter run to start the app.

It’s possible that the issue is caused by a mismatch between the required Flutter version and the installed Flutter version.

LocalSend uses fvm to manage the project Flutter version (specified in .fvm/fvm_config.json). After you installed it, run fvm flutter instead of flutter.


We welcome contributions from anyone interested in helping improve LocalSend. If you’d like to contribute, there are a few ways to get involved:


You can help translate this app to other languages!

  1. Fork this repository
  2. Choose one
    • Add missing translations in existing languages: Only update _missing_translations_<locale>.json in app/assets/i18n
    • Fix existing translations: Update strings_<locale>.i18n.json in app/assets/i18n
    • Add new languages: Create a new file; see also: locale codes.
  3. Optional: Re-run this app
    1. Make sure you have run this app once.
    2. Update translations via flutter pub run slang
    3. Run the app via flutter run
  4. Open a pull request

Take note: Fields decorated with @ are not meant to be translated; they are not used in the app in any way, being merely informative text about the file or to give context to the translator.

Bug fixes and improvements

  • Bug Fixes: If you find a bug, please create a pull request with a clear description of the issue and how to fix it.
  • Improvements: Have an idea for how to improve LocalSend? Please create an issue first to discuss why the improvement is needed.

For more information, see the contributing guide.


These commands are intended for maintainers only.


Traditional APK

flutter build apk

AppBundle for Google Play

flutter build appbundle


flutter build ipa


flutter build macos



flutter build windows

Local MSIX App

flutter pub run msix:create

Store ready

flutter pub run msix:create --store



flutter build linux


appimage-builder --recipe AppImageBuilder.yml


Feel free to open a pull request. There is a snap branch to play with.

LocalSend on GitHub:
Platform: Flutter
⭐️: 23K