> ## 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 Quick Start

> Send your first file with Floe in under a minute using the web app at floe.one, with peer-to-peer WebRTC transfer and no signup or install required.

## Browser

### Sender

1. Open [floe.one](https://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.

<Tip>
  On iOS, use Download ZIP for the most reliable experience.
</Tip>

<Note>
  The receiver view has a **Contribute to global stats** checkbox (on by default) that adds only this transfer's byte count to Floe's public homepage counter. Uncheck it to opt out. File names and contents are never sent. See [Receiving Files](/docs/web-app/receiving#contribute-to-global-stats).
</Note>

<Note>
  The sender must keep their browser tab open for the entire duration of the transfer.
</Note>

***

## CLI

<Steps>
  <Step title="Install">
    Download the binary for your platform from [GitHub Releases](https://github.com/jannskiee/floe/releases). See [Installation](/docs/cli/installation) for platform-specific steps.
  </Step>

  <Step title="Send">
    ```bash theme={null}
    floe send photo.jpg
    ```

    Floe connects, registers a short code, and prints a sharing panel:

    ```
      Sending   photo.jpg · 6.0 MB
      ─────────────────────────────────────────────────
      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.
  </Step>

  <Step title="Receive">
    The recipient runs:

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

    Or they can open the link in any browser. Once connected, the CLI shows an incoming summary, a confirmation prompt, and then a live progress bar:

    ```
      Connecting to sender...
      Connected
      ─────────────────────────────────────────────────
      Incoming   photo.jpg · 6.0 MB
      ─────────────────────────────────────────────────

      Accept? [Y/n] y

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

      ─────────────────────────────────────────────────
      Received   1 file (6.0 MB)
      Time       5s · avg 1.2 MB/s
      Saved to   /home/user/Downloads
      ─────────────────────────────────────────────────
    ```

    Pass `-y` to auto-accept without the prompt. Omit `-o` to save to the current directory instead. Pass `--no-report` (or set `FLOE_NO_STATS=1`) to skip contributing the byte count to Floe's public counter.
  </Step>
</Steps>

***

## Cross-platform transfers

The browser and CLI clients are fully interoperable. Any combination of sender and receiver works.

| Sender  | Receiver | How the receiver joins                         |
| ------- | -------- | ---------------------------------------------- |
| Browser | Browser  | Opens the shared link or scans the QR code     |
| Browser | CLI      | `floe receive <link>` (paste the full URL)     |
| CLI     | Browser  | Opens the shared link or scans the QR code     |
| CLI     | CLI      | `floe 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.

<Note>
  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.
</Note>
