I realized how tricky it can be to be in two different ecosystems while switching from Apple-based hardware to a Framework notebook running Linux. Sending a photo from the phone was suddenly difficult, no shared clipboard anymore.
Moving a file suddenly had to go through all sorts of odd channels: a chat message to myself, a cloud folder, an email.
LocalSend addresses this problem by allowing simple direct transfer between devices on the same network. It is open source, runs on Android, iOS, Windows, macOS and Linux, and sends files device to device over the local network. No account, no server, nothing leaves the network.
How it works
It discovers devices via multicast on the local network, so that one can see which devices are available and then receive data from them or transfer data to them. The multicast group is link-local, so it does not cross routers.
There are a few additional features to help with the discovery, e.g. entering the target IP address manually. I found them useful for rare cases. In my day-to-day usage I don't need them, and discovery has been reliable.
Favorites in the app are a nice way to manage known devices. They can auto-accept transfers, which makes moving things between my own devices more convenient.
Usage on NixOS
One line:
programs.localsend.enable = true;
This provides the application and configures the firewall (open port 53317), so that incoming traffic is accepted.
Experiences so far
It works fine. The only struggles I found:
- Devices on different networks don't find each other. This is by design and happens when you partition your network and have devices in separate segments. Manually entering the target IP address may help to work around this.
- Routing priorities can lead to issues and may need fixing in your network configuration. I hit this once through my VPN configuration, which was swallowing the replies.
Overall it works very well in day-to-day usage.
Conclusion
LocalSend is a great asset in the toolbox. Especially when you want to choose which hardware and operating system you use.
- LocalSend: https://localsend.org/