Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Khmer (Central)) Currently translated at 98.6% (372 of 377 strings) Translated using Weblate (Malayalam) Currently translated at 96.8% (365 of 377 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Khmer (Central)) Currently translated at 98.4% (371 of 377 strings) Translated using Weblate (Japanese) Currently translated at 99.4% (375 of 377 strings) Translated using Weblate (Greek) Currently translated at 98.4% (371 of 377 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Finnish) Currently translated at 99.2% (374 of 377 strings) Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Persian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Persian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Bulgarian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Tamil) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Tamil) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Malayalam) Currently translated at 96.5% (364 of 377 strings) Translated using Weblate (Thai) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Nepali) Currently translated at 97.3% (367 of 377 strings) Translated using Weblate (Basque) Currently translated at 90.7% (342 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Malay) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 99.7% (376 of 377 strings) Update translation files Updated by "Remove blank strings" add-on in Weblate. Translated using Weblate (Malayalam) Currently translated at 96.5% (364 of 377 strings) Translated using Weblate (Arabic) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Hindi) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Greek) Currently translated at 98.4% (371 of 377 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Thai) Currently translated at 98.4% (371 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (French) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Malayalam) Currently translated at 71.8% (271 of 377 strings) Translated using Weblate (Danish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Greek) Currently translated at 98.1% (370 of 377 strings) Translated using Weblate (Sinhala) Currently translated at 100.0% (377 of 377 strings) Update translation files Updated by "Remove blank strings" add-on in Weblate. Translated using Weblate (Turkish) Currently translated at 98.6% (372 of 377 strings) Translated using Weblate (Greek) Currently translated at 98.1% (370 of 377 strings) Translated using Weblate (Portuguese (Portugal)) Currently translated at 99.7% (376 of 377 strings) Translated using Weblate (Persian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Azerbaijani) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Danish) Currently translated at 99.4% (375 of 377 strings) Translated using Weblate (Danish) Currently translated at 98.9% (373 of 377 strings) Translated using Weblate (Chinese (Traditional Han script)) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Chinese (Traditional Han script, Hong Kong)) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Galician) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Galician) Currently translated at 94.9% (358 of 377 strings) Translated using Weblate (Galician) Currently translated at 85.6% (323 of 377 strings) Translated using Weblate (Galician) Currently translated at 80.3% (303 of 377 strings) Translated using Weblate (Galician) Currently translated at 73.7% (278 of 377 strings) Translated using Weblate (Galician) Currently translated at 60.4% (228 of 377 strings) Translated using Weblate (Galician) Currently translated at 59.1% (223 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Vietnamese) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Malayalam) Currently translated at 60.4% (228 of 377 strings) Translated using Weblate (Bulgarian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (377 of 377 strings) Translated using Weblate (Tamil) Currently translated at 99.7% (376 of 377 strings) docs: add sponsor Co-authored-by: Aaron S Christo <aronschristo@gmail.com> Co-authored-by: Ali Eslamnejad <codingvenus@gmail.com> Co-authored-by: Anucha Lhaononkor <achn.syps@gmail.com> Co-authored-by: BachNob <tqbach184@gmail.com> Co-authored-by: Bunnet PHOUNG <bunnetphoung123@gmail.com> Co-authored-by: Christian <mardous.contact@gmail.com> Co-authored-by: ClementChesnin <clement.chesnin@gmail.com> Co-authored-by: Deleted User <noreply+110771@weblate.org> Co-authored-by: Doctorredits_here <182783629+doctorreditshere@users.noreply.github.com> Co-authored-by: Dream X <nodem49316@daupload.com> Co-authored-by: EESF-2 <eesf-2@users.noreply.hosted.weblate.org> Co-authored-by: Ecron <ecron_89@hotmail.com> Co-authored-by: Eloi Barcon Piñeiro <eloi.b.pineiro@gmail.com> Co-authored-by: Filipe Mota (BlackSpirits) <blackspirits@gmail.com> Co-authored-by: GiannosOB <giannos2105@gmail.com> Co-authored-by: Giorgos Skafidas <giorgos@skafidas.online> Co-authored-by: Goudarz Jafari <me@goudarzjafari.com> Co-authored-by: Harsh Yadav <harshlms.dev@gmail.com> Co-authored-by: Heavy Piano <weblate.headcount135@simplelogin.com> Co-authored-by: Hiiri522 <hhiiri522@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Infinite Eternal <yigit.yc@icloud.com> Co-authored-by: LucasMZ <git@lucasmz.dev> Co-authored-by: Muhammad Arshad <muhammadarshadv2@gmail.com> Co-authored-by: Murcielago <weblate.j9bmx@slmail.me> Co-authored-by: Nemoralis <50991261+nemoralis@users.noreply.github.com> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: Rinto Rapheal <rintomr@users.noreply.hosted.weblate.org> Co-authored-by: Rupak Sapkota <sapkotarupak343@gmail.com> Co-authored-by: Schooi <robloxianskp@gmail.com> Co-authored-by: Sithum Sandaruwan <thesithumsandaruwan@gmail.com> Co-authored-by: Srithar <sritharboss8@gmail.com> Co-authored-by: Tien Do Nam <dev.tien.donam@gmail.com> Co-authored-by: Tommy Chan <sopp.ladios@gmail.com> Co-authored-by: Valixity Bro <itsvalixitybro@gmail.com> Co-authored-by: abdelbasset jabrane <naminio201@users.noreply.hosted.weblate.org> Co-authored-by: bellonline <bell_extrasensory@hotmail.com> Co-authored-by: cat <catsnote@proton.me> Co-authored-by: erlex <erlex708@gmail.com> Co-authored-by: jonnysemon <jonnysemon@users.noreply.hosted.weblate.org> Co-authored-by: miiyuh <itsazripp2@gmail.com> Co-authored-by: siyancsijo <siyansijoc@gmail.com> Co-authored-by: ssantos <ssantos@web.de> Co-authored-by: trunars <trunars@gmail.com> Co-authored-by: Đức Thành Vũ <thanhvd1403@gmail.com> Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com> Co-authored-by: មនុញ្ញ - MᴇᴀнNսɴн <meahnunh@outlook.com> Co-authored-by: 快乐的老鼠宝宝 <laoshubaby@protonmail.com> Translate-URL: https://hosted.weblate.org/projects/localsend/app/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ar/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/az/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/bg/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ca/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/da/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/el/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/es/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/et/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/eu/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/fa/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/fi/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/fr/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/gl/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/hi/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/id/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ja/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/km/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ml/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ms/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ne/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/pt_PT/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/si/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/ta/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/th/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/tr/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/vi/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/zh_Hant/ Translate-URL: https://hosted.weblate.org/projects/localsend/app/zh_Hant_HK/ Translation: LocalSend/App
LocalSend
Homepage • Discord • GitHub • Codeberg
English (Default) • Español • فارسی • Filipino • Français • Indonesia • Italiano • 日本語 • ភាសាខ្មែរ • 한국어 • Polski • Portugês Brasil • Русский • ภาษาไทย • Türkçe • Українська • Tiếng Việt • 中文
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
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.
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 |
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.
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. 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 LocalSend into other languages. We use the Weblate platform to manage translations.
Alternatively, you can also contribute by forking this repository and adding translations manually.
The translations are located in the app/assets/i18n directory. Edit the _missing_translations_<locale>.json or strings_<locale>.i18n.json file to add or update translations.
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.
Troubleshooting
| Issue | Platform (Sending) | Platform (Receiving) | Solution |
|---|---|---|---|
| Device not visible | Any | Any | Make sure to disable AP-Isolation on your router. If it is enabled, connections between devices are forbidden. |
| Device not visible | Any | Windows | Make sure to configure your network as a "private" network. Windows might be more restrictive when the network is configured as public. |
| Device not visible | macOS, iOS | Any | You can try to toggle the "Local Network" permission under "Privacy" in the OS settings. |
| Speed too slow | Any | Any | Use 5 Ghz; Disable encryption on both devices |
| Speed too slow | Any | Android | Known issue. https://github.com/flutter-cavalry/saf_stream/issues/4 |
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
Instructions in localsend/snap/README.md

