> ## Documentation Index
> Fetch the complete documentation index at: https://www.floe.one/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Floe CLI Flags Reference

> Complete reference for every floe CLI flag, covering send, receive, self-hosted server URLs, output paths, timeouts, and verbose logging options.

## Global flags

Available on all commands (`send`, `receive`, `update`, `version`).

| Flag             | Default                | Description                                                                                                                                                                                                                                                                       |
| ---------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--server <url>` | `https://api.floe.one` | Signaling server URL. Use `http://localhost:3001` for local testing or your self-hosted server URL.                                                                                                                                                                               |
| `--no-relay`     | `false`                | Disable the TURN relay. Only direct (STUN) connections are attempted. The transfer fails if a direct path cannot be established. Useful for ensuring files never pass through a relay.                                                                                            |
| `--web <url>`    | *(auto-detected)*      | Web app URL included in the browser link printed by `floe send`. Auto-detected from `--server`: the production server defaults to `https://floe.one`, and `localhost:3001` defaults to `http://localhost:3000`.                                                                   |
| `--iface <name>` | *(all interfaces)*     | Restrict WebRTC to network interfaces whose name contains this value (case-insensitive). Repeatable. Use when a VPN or virtual-machine adapter (Tailscale, VMware, WSL, Hyper-V) slows connection setup, for example `--iface Ethernet`. See [Troubleshooting](/docs/troubleshooting). |

## Environment variables

If you run your own signaling server, set it once in your environment instead of passing `--server` on every command.

| Variable        | Equivalent flag | Description                                                                                                                                   |
| --------------- | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `FLOE_SERVER`   | `--server`      | Signaling server URL, used by every command.                                                                                                  |
| `FLOE_WEB`      | `--web`         | Web app URL used for the browser link printed by `floe send`.                                                                                 |
| `FLOE_NO_STATS` | `--no-report`   | Set to `1` to never report byte counts. Applies to `floe receive`. See [Opting out of the global counter](#opting-out-of-the-global-counter). |

A flag always beats its variable, so you can override the setting for a single command without unsetting anything:

```bash theme={null}
export FLOE_SERVER=https://floe.example.com
floe send photo.jpg                                # uses floe.example.com
floe send photo.jpg --server https://api.floe.one  # the flag wins, just this once
```

On Windows PowerShell:

```powershell theme={null}
$env:FLOE_SERVER = "https://floe.example.com"
floe send photo.jpg
```

Trailing slashes are trimmed, so `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 than your signaling server. Leave it unset and share links point at the same host, which is what you want when one domain serves both.

## `floe receive` flags

Specific to the `receive` command.

| Flag             | Short | Default | Description                                                                                                                                                |
| ---------------- | ----- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--output <dir>` | `-o`  | `.`     | Directory to save received files. Created automatically if it does not exist.                                                                              |
| `--yes`          | `-y`  | `false` | Accept incoming files without the confirmation prompt.                                                                                                     |
| `--no-report`    |       | `false` | Do not report the transferred byte count to Floe's public global counter. See [Opting out of the global counter](#opting-out-of-the-global-counter) below. |

## Opting out of the global counter

After a successful transfer, the **receiver** sends only the total byte count to Floe's signaling server to power the public "transferred globally" counter on the homepage. No file names, contents, or identity are included, and reporting is always fire-and-forget (it never blocks or slows a transfer). The **sender** never reports.

To opt out for a single transfer, pass `--no-report`:

```bash theme={null}
floe receive olive-tiger-castle --no-report
```

To opt out permanently, set `FLOE_NO_STATS=1` in your environment (for example in your shell profile):

```bash theme={null}
export FLOE_NO_STATS=1
floe receive olive-tiger-castle
```

When opted out, no request is sent to the server and the global counter is not incremented for that transfer. The transfer itself is unaffected.

## Examples

Use a local dev server for both sender and receiver:

```bash theme={null}
floe send photo.jpg --server http://localhost:3001
floe receive olive-tiger-castle --server http://localhost:3001
```

Disable relay fallback (direct connections only):

```bash theme={null}
floe send photo.jpg --no-relay
```

Point the browser link at a custom web client:

```bash theme={null}
floe send photo.jpg --server https://api.example.com --web https://app.example.com
```

Save received files to a specific folder and auto-accept:

```bash theme={null}
floe receive olive-tiger-castle -o ~/Downloads -y
```

See [Against a Self-Hosted Server](/docs/cli/self-hosted-server) for more server configuration examples.
