Basic File Transfer
In Pairing Mode, share a code phrase with the person runninghayate receive and Hayate handles the rest. In Direct Mode, supply the receiver’s ip:port as a positional argument.
Auto-Generating a Code
If you omit--code and don’t specify a target address, Hayate generates a random 4-word phrase and prints it to your terminal. Share that phrase with the receiver — both sides derive the session key from it.
Choosing an Integrity Algorithm
Use the--hash flag to select the algorithm Hayate uses to verify the transfer end-to-end.
blake3(default) — fastest option; cryptographically secure and parallelisedsha256— widely recognised standard; useful when you need the checksum to be verifiable by external tools
Compression Control
Zstd compression is enabled by default (-z / --compress). Hayate applies it at level 1 — fast enough that it rarely becomes the bottleneck on a LAN. Turn it off when your files are already compressed (ZIP, MP4, JPEG, and similar formats) to avoid wasting CPU cycles.
Hayate’s Zstd compression applies to the raw byte stream, so passing
--compress=false for already-compressed archives avoids double-compression overhead without any loss of transfer reliability.Progress Bar
A live progress bar is shown by default while a transfer is running. Use--no-progress to suppress it — helpful when piping output, running in a headless environment, or using a terminal emulator that doesn’t handle Unicode block characters cleanly.
Sending to a Custom Port
Specify any port in the target address. The receiver must be listening on that same port.Sending to a Specific Address
You can combine a custom IP and port freely. Hayate resolves hostnames too, solaptop.local:50001 works wherever your system can resolve .local names.
Receive Files
Set up a receiver on the destination device to accept incoming transfers.