Tools · Open source

LocalSend Kotlin

mouse233

An unofficial, lightweight Kotlin LocalSend client for older Android devices.

Download

Opens the official F-Droid page

LocalSend Kotlin screenshot 1LocalSend Kotlin screenshot 2LocalSend Kotlin screenshot 3

About LocalSend Kotlin

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.

What's new in 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.

How to install LocalSend Kotlin

  1. Tap Download — the app's official page on F-Droid opens.
  2. Install it with the F-Droid app (recommended, for automatic updates), or use the download button on that page.
  3. If Android asks, allow the F-Droid app or your browser to install apps, then tap Install.
  4. Open LocalSend Kotlin from your app drawer.

More tools apps

More