floe receive
olive-tiger-castle) or the full browser link. Connecting is not enough on its own: Floe waits until the sender announces the first file, then asks you to confirm the whole batch once, and only then writes anything to disk.
Examples
Receive using a short code:Terminal
Terminal
Terminal
Terminal
Output
Runningfloe receive olive-tiger-castle -o ~/Downloads:
Output
-o flag, files save to the current directory.
The Connected line names the route: (direct) when the two devices talk to each other, (relay) when the transfer runs through the TURN relay. It reads Connected alone only when the route could not be determined, and the transfer proceeds either way.
Confirmation prompt
When the first file’s metadata arrives, Floe shows a summary of what is incoming and asks for confirmation:Output
- Type
norno, in any capitalization, to decline. The transfer is canceled and the connection closes. - Press Enter or type anything else to accept and begin receiving. The prompt only looks for a decline, so a typo counts as yes.
- The same rule applies when nothing is there to answer. In a script, a cron job, or anywhere stdin is closed or piped, the prompt reads an empty answer and accepts.
echo | floe receive <code>accepts without-y. Pass-yanyway when you mean it, so the intent is on the command line rather than in the shell’s plumbing.
-y to skip this prompt and accept automatically.
Flags
See CLI flags reference for the global flags that matter here (
--server, --no-relay, --relay-only, --iface) and full opt-out documentation.
Notes
- Received files are saved to the output directory. Existing files are never overwritten: if a name is already taken, the incoming file is saved with a numbered suffix before the extension (
report.pdf, thenreport (1).pdf), the same way browsers de-duplicate downloads. The progress line shows the name actually written. On Windows the reserved characters< > : " | ? *are replaced with_first, so two names that differed only in one of those arrive as a name and its numbered twin. See Known limitations. - Each file is written under a temporary name ending in
.partand takes its final name only once the bytes on disk match the size the sender announced, so nothing half-written can ever sit under a finished-looking name. The check is a byte count, not a checksum: Floe computes no hash of your files at any point. A transfer that fails or stalls partway deletes its.partfile; files that completed earlier in the batch are kept, and retrying reuses the original name instead of a numbered one. Even if the process is killed outright or the machine loses power, the worst leftover is a.partfile, which is safe to delete (until you do, a retry saves under a numbered name). On macOS and Linux a crash at the exact instant of completion can additionally leave an empty placeholder at the final name beside the intact.part; on Windows the final rename is atomic and no such instant exists. - Directory structure is preserved when the sender sends a folder. Files land at the same relative paths inside your output directory.
- A name your system cannot represent is adjusted before the file is written, and the progress line shows the adjusted name. On Windows that means the characters
< > : " | ? *become underscores, trailing dots and spaces are removed, and a name that is a reserved device name (such asNUL) gets an underscore in front. Names are left exactly as sent on macOS and Linux, where all of those are valid. Control characters and text-direction marks are replaced with underscores on every platform, since a file name is not a place for either. A browser receiver strips them instead of replacing them, so the same file can land under slightly different names on the two surfaces. The name shown in the Incoming box and the accept prompt is cleaned the same way and shortened to 200 characters with its extension kept, so a name cannot rewrite the prompt or disguise its extension before you answer. - On Windows, received files are tagged with the mark of the web (a
Zone.Identifierstream), so SmartScreen and Office Protected View treat them like browser downloads when opened. - Press
Ctrl+Cto cancel the transfer at any time. The in-flight.partfile is removed on the way out. - Short codes expire 10 minutes after the sender starts the session. After that, only the full link works (and only while the sender is still connected).
- After the transfer completes, the receiver posts only the total byte count to the signaling server for the public global counter. No file names or contents are included. Use
--no-reportorFLOE_NO_STATS=1to skip this. The sender never reports.