Global flags
Every command accepts these, but onlysend and receive act on them. floe version and floe update parse them and then ignore them, so floe version --server https://floe.example.com is accepted and changes nothing. The one exception is the pair --relay-only and --no-relay, which every command refuses together.
The desktop app has equivalents for three of these.
--server and --web are Server address and Share link address, under Advanced in Settings, and --relay-only is the Hide my IP address toggle under Privacy. --no-relay has no desktop equivalent: Floe Desktop can require the relay but never refuse it. See Desktop app settings.
Help and version flags
These come from the CLI framework rather than from Floe itself.floe completion and floe help come from the same place and are not part of Floe’s own interface. Run floe completion --help if you want shell completion.
Environment variables
Floe reads five environment variables. If you run your own signaling server, set it once in your environment instead of passing--server on every command.
A flag always beats its variable, so you can override the setting for a single command without unsetting anything:
macOS and Linux
Windows
https://floe.example.com/ and https://floe.example.com behave the same.
Set FLOE_WEB only when your web app runs on a different host from your signaling server. Leave it unset and share links point at the same host as your server, which is what you want when one domain serves both. The only exceptions are Floe’s own deployment and the local dev pair, which are special-cased to their web hosts as described under --web above.
floe receive flags
Specific to the receive command.
floe update flags
Specific to the update command.
Opting out of the global counter
After a successful transfer, the receiver sends only the total byte count to the signaling server it is connected to (api.floe.one by default, or your own server when you set --server or FLOE_SERVER) to power the public “transferred globally” counter. No file names, contents, or identity are included. The sender never reports.
Errors are ignored, so a failed report never changes the outcome of a transfer. The request goes out after every file is written and the summary has printed, and it carries a 5-second timeout, so an unreachable server can delay floe receive from exiting by a few seconds but never affects the files.
To opt out for a single transfer, pass --no-report:
Terminal
FLOE_NO_STATS=1 in your environment (for example in your shell profile):
Terminal
--no-report.
Exit codes
floe with no arguments prints help and exits 0.
Timeouts
Floe gives up rather than hanging, and the limits differ by phase. The ones you are most likely to meet:
A
floe receive can sit for up to about ten seconds after printing its summary. That is a five-second
grace period so the final acknowledgement reaches the sender, plus the report. The full
list is in the transfer protocol reference.
Examples
Use a local dev server for both sender and receiver:Terminal
Terminal
Terminal
Terminal
Terminal