package icon

LocalSend Kotlin

An unofficial, lightweight Kotlin LocalSend client for older Android devices.
New in version 0.8.0-alpha
- Added the LocalSend v2 /info endpoint with the device identity and certificate fingerprint.
- Unsupported system languages now fall back to English.
- Completed localization of transfer status, notifications, discovery errors, history text, verification accessibility labels, and dialog buttons.
- Preserved Android 5.0 compatibility constraints for automatic AndroidX Core updates.
LocalSend Kotlin is an unofficial, lightweight native Android LocalSend client written in Kotlin. This project is not affiliated with or endorsed by the official LocalSend project. It aims to interoperate with the official LocalSend clients and provide secure file transfer on local networks, including older Android devices.

Implemented features:

- LAN device discovery using LocalSend v2 UDP multicast, with an HTTPS scanning fallback and selectable network interfaces.
- Read-only LocalSend v2 device information endpoint (/api/localsend/v2/info), including the device fingerprint.
- Sending and receiving files, folders, media, text, and clipboard content.
- Multi-file queues with progress, cancellation, configurable receive behavior, and history.
- HTTPS, certificate-fingerprint identity verification, optional PIN authentication, and SHA-256 checksums.
- System Default, Simplified Chinese, and English interfaces, with English as the fallback for unsupported system languages, plus theme colors, dark mode, device and favorite management, and network and transfer settings.
- Foreground-service transfers with lock-screen support, notifications, and an optional keep-screen-awake mode.
- Android Quick Settings tile for toggling the background transfer service on Android 7.0 (API 24) and later.
- Android system share target for single files, multiple files, and text content.

Compatibility:

- Android 5.0 (API 21) and later.
- Both devices must be connected to the same local network.
- The client advertises protocol version 2.0 and implements the main LocalSend v2 discovery and upload workflows; complete protocol conformance has not been verified. The browser download API is not implemented (download: false).
- Guest networks, AP/client isolation, multicast filtering, or vendor firewalls may prevent discovery or the TCP connection.

Storage:

- Android 10 and later uses MediaStore to save files to the public Downloads directory by default.
- Android 5.0 through Android 9 uses the Download/LocalSend Kotlin directory by default and requires legacy storage permission.

Current limitations include a less polished transfer queue interface, no browser-link receiving, no multi-threaded transfers, no large-file performance optimizations, and no resumable transfers. Android 4.x is not supported.

This is an Alpha project suitable for early-user testing. When reporting an issue, include the Android version, device model, both client versions, and reproducible steps.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 0.8.0-alpha (23) suggested Added on Oct 18, 2026

    This version requires Android 5.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • allow Wi-Fi Multicast reception
      Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
    • run foreground service
      Allows the app to make use of foreground services.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • io.github.mouse233.localsendkotlin.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.7 MiB PGP Signature | Build Log

  • New in version 0.7.9-alpha
    Preserved completed, failed, and cancelled outgoing transfer states when a later transfer finishes.
  • Version 0.7.9-alpha (22) - Added on Sep 09, 2026

    This version requires Android 5.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • view Wi-Fi connections
      Allows the app to view information about Wi-Fi networking, such as whether Wi-Fi is enabled and name of connected Wi-Fi devices.
    • allow Wi-Fi Multicast reception
      Allows the app to receive packets sent to all devices on a Wi-Fi network using multicast addresses, not just your phone. It uses more power than the non-multicast mode.
    • run foreground service
      Allows the app to make use of foreground services.
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • read the contents of your shared storage
      Allows the app to read the contents of your shared storage.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify or delete the contents of your shared storage
      Allows the app to write the contents of your shared storage.
    • io.github.mouse233.localsendkotlin.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    Download APK 4.6 MiB PGP Signature | Build Log