Skip to main content

Files and transfers

Your files go directly to the recipient’s device. In most cases they never touch a server at all. When a direct path cannot be found (strict corporate firewalls, carrier-grade NAT), Floe automatically falls back to an encrypted TURN relay. Even through a relay, the server sees only encrypted packets and cannot read your files.See How It Works for a full explanation.
Direct connections have no size limit. Files transfer directly between the two devices and no server bandwidth is consumed.Relay connections are capped at 2 GB per session to keep the service free. Most home and mobile network transfers connect directly and have no limit. See The 2 GB Relay Limit for details and tips on obtaining a direct connection.
Yes. In the browser, select multiple files in the file picker. In the CLI, pass multiple files or folder paths to floe send:
floe send file1.pdf file2.jpg notes/
Folder transfers preserve the directory structure. The recipient receives files at the same relative paths.
Transfer speed is limited only by the slower of the two connections involved. There is no artificial throttling. Direct transfers run at your internet connection speed. Relay transfers may be slightly slower depending on server load and network conditions, but the encryption overhead is minimal.
For the full duration of the transfer. Files stream directly from the sender’s device, so the browser tab or CLI process must remain open and active. If the sender closes the tab or cancels mid-transfer, the session ends and any partially received files are incomplete.
No. Files are never stored on any server. They travel directly between the two devices in real time. Once the session closes, nothing about your transfer is retained.

Browser

Any modern browser with WebRTC support works: Chrome, Firefox, Safari, Edge, and most Chromium-based browsers. A secure context (HTTPS or localhost) is required.WebRTC is not available in some in-app browsers (the web views embedded in Facebook, Instagram, TikTok, and similar apps). Floe detects these and prompts you to open the page in Chrome or Safari instead.
On iOS, use Download ZIP rather than downloading files individually. This is the most reliable option on Safari and iOS web views. Individual file downloads can behave inconsistently on iOS due to browser sandboxing.
The indicator in the corner of the page shows connection state:
  • Green (Direct): Files transfer directly between devices. No server involved. No size limit.
  • Amber (Relay): Files route through the encrypted TURN relay. The 2 GB cap applies.
  • Connecting: Negotiating the WebRTC connection. This usually takes a few seconds.
If the connection stays in “Connecting” for more than 30 seconds, see Troubleshooting.
No. The browser UI does not have a code entry field. To receive in the browser, the recipient must open the full link (or scan the QR code). Short codes are for the CLI only: floe receive olive-tiger-castle.

Accounts and privacy

No. Floe requires no account, no sign-up, and no registration. Open floe.one or run the CLI and share the link or short code with your recipient.
The signaling server tracks room IDs and connection metadata only for the duration of the session. No file content, file names, or transfer records are stored. Room state is discarded once both peers disconnect. See Security and Privacy for details.
Yes. The full source for the client, server, and CLI is available on GitHub under the MIT license. You can also self-host your own instance on your own infrastructure.

CLI

See CLI Installation for platform-specific steps. The quick version:
# macOS
brew install --cask jannskiee/tap/floe

# Windows (winget)
winget install jannskiee.floe

# Linux / any OS
curl -fsSL https://floe.one/install.sh | sh
Yes. Browser and CLI clients are fully interoperable. The CLI sender prints a browser link that any recipient can open, and the browser sender’s link can be passed directly to floe receive. See the cross-platform transfers table.
Run floe update for script and manual installs. For package manager installs, use brew upgrade floe, winget upgrade jannskiee.floe, or scoop update floe. See Updating.