Floe

Secure, encrypted P2P file transfer.No accounts, no file storage, and no registration required.

0.00 Bytestransferred globally

How it works

Your files never make a stop.

Two devices open an encrypted WebRTC channel and stream bytes to each other. A small server introduces them, then steps out of the way.

01

Drop your files

Click Create secure link for a share link, with a QR code one click away. The link's secret part, after the #, never appears in page requests, server logs, or analytics.

02

Share either one

Your peer opens the link in a modern browser, scans the QR, or pastes the link into the desktop app or the CLI. No account on either side.

03

Watch it stream

Bytes move device to device over the encrypted channel. Close the tab and the transfer stops. No file is ever left on a server.

Privacy

The server can't read what it never receives.

Floe's signaling server exists to introduce two devices. This is the complete list of what it handles.

The signaling server handles

  • The messages two devices trade to connect (WebRTC offers, answers, and ICE candidates), which carry their network addresses
  • The room id that pairs two devices, which is the secret part of a share link, held in memory while the room is open and written to no log
  • A short room code when the sender uses the CLI or desktop app, kept until the receiver joins or the room closes, and about 10 minutes at most
  • TURN relay credentials, valid for 24 hours and not tied to you or an account
  • One anonymous running total of bytes for the public counter
  • Your IP address, in memory while your device is connected and, to rate-limit abuse, for up to about two minutes after its last request
  • The web address each connection says it comes from (its Origin), checked against an allow-list and logged only for the first one refused on each connection path
  • While a room is open, a one-way code made from each device's network address (a keyed hash), never the address itself, so that a third network cannot take a seat
  • While a request link is open, a hash of its secret token, never the token, and its times: made, joined, left, and due to end
  • For a day after a request link closes or ends, its room id and a mark saying it was used or ended
  • The times each network made a request link, kept for 24 hours under a keyed hash of its address
  • How many request links each network has open, under the same keyed hash

It never sees

  • Your files, file names, or folder structure
  • The #room part of your share link in any page request, referrer, or analytics event. It travels in none of them
  • The link id in a request link's address (the part before the #), which only the web host sees
  • Any transfer traffic. Once the peers connect, the data channel bypasses it entirely
  • Relayed traffic in the clear. Relay packets stay encrypted end to end

The floe.one website also runs cookieless analytics (Umami) and error monitoring (Sentry). Floe Desktop and the CLI have neither. What they do send is in the privacy policy.

Command line

The same transfer, without the browser.

floe is one file with nothing else to install, and it uses the same server as the web app. Browser to terminal works in every direction, and a folder arrives with its structure intact in the CLI and Floe Desktop, or inside "Download ZIP" in a browser.

> winget install jannskiee.floe
  • floe send <path>Share files or entire folders
  • floe send <path> --to <link>Send through a Floe Desktop request link
  • floe receive <code>A short code is all the other side needs
  • floe updateUpdates itself in place, unless a package manager installed it

Also available via Scoop, a PowerShell one-liner, and go install, which gives a dev build that cannot update itself. On a Mac without Homebrew, the Linux command works too. Installation guide

terminal

Example terminal session: floe send shares three files totaling 10.1 MB, prints the short code olive-tiger-castle and a link, connects directly to the peer, and completes the transfer in 8 seconds at an average of 1.3 MB per second. Its summary includes the line Verified, SHA-256 matched.

Desktop

Transfers that outlive the tab.

Floe Desktop is the same app, running natively on Windows. Drop a folder to send it without zipping, paste a screenshot straight from the clipboard, get a notification when a transfer lands. Same rooms, same end-to-end encryption as browser and CLI peers.

  • Paste to sendCtrl+V a screenshot or files copied in Explorer
  • FoldersSent as folders, no zipping
  • HistoryWhat you sent and received, stored locally
  • Request linkSomeone sends files to your PC from their browser
Get the desktop app

v1.0.0 · Windows

floe desktop · 1.0.0

Demo of the Floe desktop app: three files are staged, then a share panel opens a live room with the code quiet-fetch-sled and a share link, waiting for the receiver.

Capabilities

No asterisks.

The fine print, printed large. Every claim below holds for the current release.

No size limit from Floe

Floe sets no size limit on a direct connection; a browser that receives is limited by what that browser can hold. Relayed sessions cap at 2 GB, and the badge shows which one you are on.

Browser to terminal

The web app, Floe Desktop, and the CLI share one protocol. Send from a server, receive on a phone, any direction.

Folders stay folders

The CLI and Floe Desktop send a folder whole and rebuild its structure when they receive one. A browser keeps the structure when you use "Download ZIP".

Honest progress

Progress for each file with live speed and time left, in the browser and in the terminal.

Checked on arrival

Each file is checked against its announced size and, when the sender sends one, a fingerprint of its contents (SHA-256). A mismatched file is discarded. CLI and Floe Desktop receivers confirm delivery.

Open source, self-hostable

MIT licensed, every line on GitHub. Run your own signaling server and relay with Docker; the docs cover production setup.

FAQ

Questions, answered plainly.