LocalSend is a free, open source file management & sync project written in Dart and released under Apache-2.0. It has 91,903 GitHub stars, 5,130 forks and 1,113 open issues, and was last pushed 4 days ago. On this registry it ranks #1 of 12 tracked projects in File Management & Sync, with 5 head-to-head comparisons available. It gained 1,285 stars over the last 6 tracked days.

What is LocalSend?

LocalSend is a free, open-source, cross-platform application that shares files and messages directly between nearby devices over the local network, and it is built for anyone who wants AirDrop-style transfers without an internet connection or a third-party server.

What it is

LocalSend is an open-source app written in Dart with Flutter and released under the Apache-2.0 licence. It runs on Windows, macOS, Linux, Android, iOS and Fire OS, and it moves files and messages between devices that sit on the same local network. Communication happens over a REST API protected by HTTPS encryption, so the payload travels device to device. Nothing is uploaded to an external account, and no third-party server sits in the middle. The project lives in the Productivity & Utilities / File Management & Sync category, carries the topics dart, file-sharing, flutter and flutter-apps, and is hosted at localsend.org with code on GitHub and a Codeberg mirror. It reports roughly 91,889 stars, 5,129 forks and 1,113 open issues, with recent commits pushed in September 2026.

The concrete problem it solves is the transfer gap between operating systems. AirDrop moves files comfortably between Apple devices, but it stops at that boundary, and cloud transfer services solve the problem by routing content through remote infrastructure on someone else's terms. LocalSend closes both gaps at once: the README describes it plainly as an open-source cross-platform alternative to AirDrop, so a phone, a Windows laptop and a Linux workstation can exchange files with each other directly over the LAN.

Key capabilities

  • Shares files and messages with nearby devices over the local network without an internet connection.
  • Uses a REST API with HTTPS encryption instead of relaying data through third-party servers.
  • Runs from one Dart and Flutter codebase across Windows, macOS, Linux, Android, iOS and Fire OS.
  • Ships through native stores and package managers: Winget, Scoop, Chocolatey, Homebrew, Flathub, Nixpkgs, Snap, AUR, Play Store, F-Droid and Amazon, plus EXE, DMG, TAR, DEB, AppImage, Portable ZIP and APK artefacts.
  • Signs Windows binaries and documents a code signing policy in the README.
  • Documents a command line interface alongside the graphical app.
  • Handles translations through Weblate and runs continuous integration through the GitHub Actions workflow ci.yml.

Who uses it and how

  • Households with mixed operating systems move photos and large files between a phone and a desktop without a cable or a cloud upload.
  • Teams on restricted or air-gapped networks transfer files on the LAN where no internet route exists.
  • Linux users install it from Flathub, Nixpkgs, Snap or the AUR alongside colleagues on Windows and macOS.
  • Privacy-conscious users keep large transfers off third-party infrastructure entirely.
  • Scripted or headless workflows use the documented command line interface instead of the GUI.

Getting started

Download from an app store or a package manager for the platform in question, such as Winget, Homebrew, Flathub or F-Droid. The README recommends those channels specifically because the app does not auto-update, and it also lists direct EXE, DMG, TAR, DEB, AppImage and APK installers, plus build instructions per platform for source builds.

How it compares

The facts name AirDrop as the direct point of comparison, and the difference is platform reach: AirDrop works between Apple devices, while LocalSend covers Windows, macOS, Linux, Android, iOS and Fire OS from one codebase under Apache-2.0. Both keep transfers peer to peer, but LocalSend extends that behaviour past the Apple ecosystem and publishes its protocol implementation and client source.

When to use it — and when not to

Adopt LocalSend where devices share a LAN and the goal is a direct, serverless transfer with no cloud account involved. The honest trade-offs: it does not auto-update, so updates depend on the store or package manager chosen, and the README points users to a troubleshooting section when discovery or transfer fails. Users who need transfers across the open internet, not across a local network, should look elsewhere, and anyone tempted by the unofficial MSIX preview at localsend.ob-buff.dev should note that the README does not guarantee its stability.

project readme (upstream, from github) — read inline

LocalSend

CI status Translations Packaging status

HomepageDiscordGitHubCodeberg

English (Default)中文

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

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

iPhone screenshot PC screenshot

Download

Packaging status

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.

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

Dependency hierarchy

Getting Started

To compile LocalSend from the source code, follow these steps:

  1. Install Flutter directly or using fvm (see version required)
  2. Install Rust
  3. Clone the LocalSend repository
  4. Run cd app to enter the app directory
  5. Run flutter pub get to download dependencies
  6. Run flutter run to 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.

readme truncated — read the full docs on github

Frequently asked questions

Is LocalSend free to use?

LocalSend is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does LocalSend do?

Share files securely across all devices without servers

What is LocalSend written in?

LocalSend is primarily written in Dart. Its source is publicly available at https://github.com/localsend/localsend, and it has 91,903 GitHub stars.