Skip to main content
Use the browser unless you need folders, a place on disk, or a script. There are three Floes: the web app, Floe Desktop and the floe CLI, a command you type in a terminal. Any of them sends to any other, so the choice is about convenience rather than compatibility.

Web app

Nothing to install. Best for a one-off, and the only one your recipient definitely already has.

Floe Desktop

Windows only. Best for folders, large files, and sending the same way every day.

CLI

macOS, Windows, Linux. Best for servers, scripts, and computers with no screen.

Pick by what you are doing

Sending one file to someone who has never heard of Floe. Use the browser. You send them a link, they open it, and the transfer starts on its own. They install nothing and no part of the exchange needs explaining. Getting files from someone who does not have Floe. There are two ways, and neither asks them to install anything:
  1. They open floe.one, drop the files, and send you the link. You open it in any Floe.
  2. You make a request link in Floe Desktop and send it to them. They open it in a browser and pick their files. Once you accept, the files land in a folder on your PC. See Request links.
Sending a folder. Use Floe Desktop or the CLI. Both walk the folder for you, and Floe Desktop or the CLI on the other side rebuilds the same structure. A browser on the other side rebuilds it only inside Download ZIP. The Send page at floe.one has no folder picker, but it sends a folder you drop on it. The page a request link opens takes folders too. Receiving something very large. Use Floe Desktop or the CLI. Both write straight to disk as the bytes arrive. A browser receiver keeps each file inside the browser until you save it, and how much it can hold depends on the browser: see Known limitations. Transferring from a machine with no screen. Use the CLI. It is a single program file that needs nothing else installed, released for macOS, Linux and Windows on Intel and ARM. For a script or a CI job, see In scripts and CI. Sending regularly from Windows. Use Floe Desktop. It keeps a local history of the last 50 transfers, remembers where you save things, and, on the build from GitHub, can put Send with Floe in the File Explorer right-click menu.

Feature by feature

Sending and receiving

The setting that forces the relay is Hide my IP on a request link’s page and Hide my IP address in Floe Desktop. See Hide my IP.

What is the same everywhere

These are properties of the transfer itself, so they do not change with the client you pick.
  • Encryption. Every transfer is encrypted end to end over a WebRTC data channel. See Encryption.
  • No size limit from Floe on a direct connection, and a 2 GB cap when the connection is relayed. See File size limits.
  • Every file is checked on arrival. The receiver compares each file with the size the sender announced. When the sender provides one, it also compares the file’s SHA-256, a fingerprint of its contents. A file that does not match is discarded. See File checks.
  • One receiver per transfer. While one recipient is connected, a second one is turned away. See How a transfer works.
  • The sender stays connected for the whole transfer. Closing the tab, quitting the app, or stopping the process ends it.
  • Versions do not need to match for an ordinary transfer. Newer apps speak version 2 of the transfer protocol and still accept version 1, so peers on different releases transfer normally. See Protocol versioning. A link key is checked only by the web app, floe receive 1.12 and later and Floe Desktop 1.1 and later: an older app ignores it. Request links need Floe Desktop 0.3.0 or later and a server that has them turned on. To send from the terminal they need floe 1.11.0 or later, or floe 1.12 or later for a link from Floe Desktop 1.1 or later.

Mixing them

Every combination works, and neither side needs to know what the other is using. Whatever each side runs, both join the same room on Floe’s server, which introduces them. What differs is the check: a link key is checked only on a link that holds one, by an app new enough to read it, and never on a room code. See What the link key checks. The one asymmetry worth remembering: a browser recipient needs the link. There is no place to type a room code in the web app, and a browser sender never makes one. Room codes are a desktop and CLI feature in both directions. When you are not sure what the person on the other end will use, share the link, because every client accepts it. See the cross-platform table for how each pairing joins.
Last modified on November 6, 2026