Skip to main content
Hayate ships a native Android binary compiled for aarch64-linux-android, so you get the same encrypted QUIC transfers on your phone that you’d expect on a desktop. There’s no Python runtime to install and no SSH server to configure — just a single binary running in Termux. Auto-discovery via mDNS works on most home Wi-Fi networks, so your phone and laptop can find each other the same way they would on any other platform.

Prerequisites

Before installing Hayate, make sure you have:
  • Termux installed from F-Droid (recommended) or Google Play
  • Your Android device connected to the same Wi-Fi network as the devices you want to transfer to or from
  • Storage permission granted to Termux (see setup tips below)

Installation

Run the following commands inside Termux to download the prebuilt arm64 binary and make it executable:
The binary is placed in Termux’s bin directory and becomes available on your PATH immediately.

Verify Installation

Confirm the binary runs correctly:
You should see the current Hayate version printed to your terminal.

Sending a File from Android

You can send files from your Android device to any Hayate receiver on your LAN — whether that’s a laptop, desktop, or another phone running Termux.
In Pairing Mode, Hayate prints the code (or uses the one you supply) and broadcasts its presence until the receiver connects. In Direct Mode, the receiver must be running hayate receive --port 50001 before you send.

Receiving a File on Android

Start a receiver on your phone and tell the sender to use the matching code or your phone’s IP address:
Received files are saved to the path you specify. If the directory doesn’t exist, Hayate creates it.

Tips for Termux

1

Grant storage permission

Run this command once to give Termux access to /sdcard/ and your shared storage:
After accepting the permission prompt, you can read and write files in /sdcard/ from Termux.
2

Disable the progress bar if it looks broken

Some Android terminal apps don’t render Unicode block characters correctly. If the progress bar looks garbled, suppress it:
3

Fall back to Direct Mode if mDNS doesn't work

mDNS auto-discovery works on most home Wi-Fi routers, but some routers and Android hotspot configurations isolate clients from each other. If hayate discover doesn’t find your peers, switch to Direct Mode:

Platform Notes

Hayate uses the epoll I/O backend on Android (via the aarch64-linux-android target), the same backend used on Linux systems that predate io_uring. Performance is excellent for LAN transfers; you won’t notice a difference compared to desktop in practice.
Only the arm64 (aarch64) architecture is officially supported with prebuilt binaries. If you’re on an x86 Android device or a 32-bit ARM device, you’ll need to build Hayate from source targeting your architecture.