Get LumiHop
Install it on at least two devices — the whole point is that they find each other. Everything here is free, and the source is on GitHub.
iPhone & iPad
Nothing to install — open it in Safari
A native iOS app is possible, but it would need a paid Apple developer account and App Store review, and iOS would still stop it receiving files while it sat in the background — which is most of the point. The web app needs none of that, works today, and is not waiting on anyone’s approval.
To keep it on your home screen: tap Share, then Add to Home Screen. It then opens full-screen like any other app.
Open LumiHop in the browsermacOS
Apple silicon and Intel · macOS 12 or newer
37 MB · no JDK needed
- 1Download the .dmg and open it.
- 2Drag LumiHop into your Applications folder.
- 3Right-click the app and choose Open — do not double-click it the first time.
- 4Click Open again when macOS asks. It will not ask you a second time.
macOS will say it cannot verify the developer
The app is not notarised by Apple yet, which needs a paid developer account. The right-click-then-Open route is Apple's own way to run an app it has not checked.
xattr -dr com.apple.quarantine /Applications/LumiHop.appWindows
Windows 10 and 11 · 64-bit
42 MB · no JDK needed
- 1Download the .msi and open it.
- 2Windows will warn you the file is not commonly downloaded — click "More info", then "Run anyway".
- 3It installs for you alone, so it needs no administrator password. The dialog lets you change where it goes.
- 4Allow LumiHop through the firewall when Windows asks, for Private networks.
Windows will say it protected your PC
The installer is not signed, so SmartScreen shows a blue warning the first time. Removing it needs a code-signing certificate from a commercial certificate authority, which costs money every year — the alternative would be to pretend the warning does not happen. The build itself runs on a clean GitHub-hosted Windows machine from the same source you can read.
Linux
Debian, Ubuntu and derivatives · x86-64
40 MB · no JDK needed
- 1Download the .deb.
- 2sudo apt install ./lumihop_1.0.0_amd64.deb
- 3Launch LumiHop from your applications menu, or run /opt/lumihop/bin/LumiHop
- 4Allow UDP 54545 and TCP 54546 if you run a firewall.
x86-64 only, and Debian-family only
This is one .deb for 64-bit Intel and AMD machines. On an arm64 board, a Raspberry Pi, or a distribution that does not take .deb packages, use the portable jar below — it is architecture-independent and needs only a JDK 21.
sudo apt install ./lumihop_1.0.0_amd64.debAndroid
Android 13 or newer (API 33+)
116 KB
- 1Download the .apk on the phone itself.
- 2Open it — Android will ask permission to install from this source.
- 3Turn on "Allow from this source", then go back and tap Install.
- 4Open LumiHop and allow notifications, so transfers keep running in the background.
Not on the Play Store
This is a direct download, so Android treats it as an unknown source. Android 13 or newer is required because that is when Ed25519 and X25519 arrived in the platform's crypto provider.
Any other machine
arm64 servers, Raspberry Pi, anything with a JDK 21
640 KB · needs a JDK 21
One architecture-independent file carrying the protocol, the transfer engine and the whole browser app. It has no desktop window — JavaFX is not part of a plain JDK — so its interface is the page it serves to this machine and to any phone that scans the code it prints.
java -jar lumihop.jar web serve the browser app to this network
java -jar lumihop.jar peers list nearby devices
java -jar lumihop.jar listen receiveOr build it yourself
LumiHop has no third-party dependencies — a JDK 21 is the entire toolchain for the desktop, CLI and Android builds. If you would rather not trust an unsigned installer, this is the honest alternative — and it is how the .msi and the .deb above are made, on GitHub-hosted Windows and Linux machines.
git clone https://github.com/harshvatsal41/LUMIHOP.git
cd LUMIHOP
./build.sh # compile everything
./build.sh test # run the test suite
./desktop.sh # launch the desktop app
./package.sh # build an installer for this platform
./package.sh jar # build the portable jar insteadBoth devices must be on the same Wi-Fi network. Guest networks and “client isolation” settings on some routers block devices from seeing each other — that is the router, not LumiHop.