Skip to content

localsend/localsend

Repository files navigation

LocalSend

CI status

HomepageDiscordGitHubCodeberg

EnglishTiếng TrungNhật Bản ngữ

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.

Screenshots

iPhone screenshotPC screenshot

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 aboutdistribution channels.

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

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).

Portable Mode

(Introduced in v1.13.0)

Create a file namedsettings.jsonlocated 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--hiddenflag (example:localsend_app.exe --hidden).

On v1.14.0 and earlier, the app starts hidden ifautostartflag 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 thedocumentation.

Getting Started

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

  1. Install Flutterdirectlyor usingfvm(seeversion required)
  2. Clone theLocalSendrepository
  3. Runcd appto enter the app directory
  4. Runflutter pub getto download dependencies
  5. Runflutter 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 usesfvmto manage the project Flutter version. After installingfvm,runfvm flutterinstead offlutter.

Contributing

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

Translation

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>.jsoninapp/assets/i18n
    • Fix existing translations: Updatestrings_<locale>.i18n.jsoninapp/assets/i18n
    • Add new languages: Create a new file; see also:locale codes.
  3. Optional: Re-run this app
    1. Runcd appto enter the app directory.
    2. Make sure you haverunthis app once.
    3. Update translations viaflutter pub run slang
    4. Run the app viaflutter run
    5. 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 thecontributing guide.

Building

These commands are intended for maintainers only.

Android

Traditional APK

flutter build apk

AppBundle for Google Play

flutter build appbundle

iOS

flutter build ipa

macOS

flutter build macos

Windows

Traditional

flutter build windows

Local MSIX App

flutter pub run msix:create

Store ready

flutter pub run msix:create --store

Linux

Traditional

flutter build linux

AppImage

appimage-builder --recipe AppImageBuilder.yml

Snap

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

Contributors

Localsend Contributors