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.
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 | ||||
AppImage |
Read more about distribution channels.
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.
To start LocalSend from the source code, follow these steps:
- Install Flutter
- Clone the LocalSend repository
- Run
flutter pub get
to download dependencies - Run
dart run build_runner build -d
to generate code - Run
flutter run
to start the app
It may be the case that it doesn't work because of 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 install it, run fvm flutter
instead of flutter
.
We welcome contributions from anyone who is 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!
- Fork this repository
- Choose one
- Add missing translations in existing languages: Only update
_missing_translations_<locale>.json
in assets/i18n - Fix existing translations: Update
strings_<locale>.i18n.json
in assets/i18n - Add new languages: Create a new file; see also: locale codes.
- Add missing translations in existing languages: Only update
- Optional: Re-run this app
- Make sure you have run this app once.
- Update translations via
flutter pub run slang
- Run the app via
flutter run
- 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: 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
Traditional
flutter build windows
Local MSIX App
flutter pub run msix:create
Store ready
flutter pub run msix:create --store
Traditional
flutter build linux
AppImage
appimage-builder --recipe AppImageBuilder.yml
Snap
Feel free to open a pull request. There is a snap
branch to play with.