Skip to main content

Browser

Sender

  1. Open floe.one in your browser.
  2. Drop files onto the page or click to open the file picker. Multiple files are supported.
  3. (Optional) Toggle Network Relay Fallback on or off. It is on by default and recommended. When disabled, only direct connections are attempted; transfers may fail on mobile data or restricted networks.
  4. Click Create Secure Link & Share.
  5. Floe displays a shareable link and a QR code. Share either with your recipient.
  6. A connection indicator appears in the corner showing the connection state. Once the recipient opens the link, it turns green (Direct) or amber (Relay) and the transfer begins automatically.

Receiver

  1. Open the shared link in any modern browser.
  2. The transfer starts automatically once the connection is established.
  3. When all files arrive, download options appear:
    • Download each file individually.
    • Download All triggers individual downloads for every file.
    • Download ZIP bundles everything into a single archive.
On iOS, use Download ZIP for the most reliable experience.
The sender must keep their browser tab open for the entire duration of the transfer.

CLI

1

Install

Download the binary for your platform from GitHub Releases. See Installation for platform-specific steps.
2

Send

floe send photo.jpg
Floe connects, registers a short code, and prints a sharing panel:
─────────────────────────────────────────────────
Code:  olive-tiger-castle
Link:  https://floe.one?room=...
─────────────────────────────────────────────────

Waiting for peer...
Share the code (CLI recipients) or the link (browser recipients). The short code is valid for 10 minutes.
3

Receive

The recipient runs:
floe receive olive-tiger-castle
Or they can open the link in any browser. Once connected, the CLI shows a confirmation prompt and then a live progress bar:
Connecting...
Connected

  Incoming: 1 file(s)

  Accept? [Y/n] y

  [1/1] photo.jpg  [████████░░░░░░░] 4.2 MB/6.0 MB

  Done. 1 file(s) received in .
Pass -y to auto-accept without the prompt. Pass -o <dir> to save files to a specific directory.

Cross-platform transfers

The browser and CLI clients are fully interoperable. Any combination of sender and receiver works.
SenderReceiverHow the receiver joins
BrowserBrowserOpens the shared link or scans the QR code
BrowserCLIfloe receive <link> (paste the full URL)
CLIBrowserOpens the shared link or scans the QR code
CLICLIfloe receive <code> or floe receive <link>
How it works: The browser connects via Socket.IO and the CLI connects via WebSocket, but both share the same room on the signaling server. Signals (WebRTC offer, answer, ICE candidates) are routed between them automatically. Neither side needs to know which client the other is using. Key difference: The browser can only join a transfer by opening the link directly. There is no short-code entry field in the web UI. The CLI accepts either the short code or the full link.
Folder transfers are a CLI feature. When you floe send ./folder, all files are transferred recursively and the directory structure is preserved on the receiver’s end. A browser receiver gets the same files but sees them as a flat list.