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

# Direct transfer

> Direct sends a file straight from one device to the other, up to 10 GB on the free plan. Nothing is stored, and it uses none of your storage.

Direct turns a channel into a tunnel. The file goes from one device to the other and Zas stores no copy of it.

Use it when the file is large, or when you do not want a copy left anywhere.

## Turn it on

The composer has a **Direct** switch. Set it to **ON** and the next thing you send becomes a direct transfer instead of a stored item.

<Warning>
  Both devices need Zas open at the same time. Direct is a live handshake, not a drop box.
</Warning>

## How large a direct transfer can be

| Plan               | Largest direct transfer                |
| ------------------ | -------------------------------------- |
| Without an account | 5 GB                                   |
| Free plan          | 10 GB                                  |
| Enterprise         | Set by your organization, up to 100 GB |

A direct transfer uses none of your storage, whatever its size. Storage caps do not apply to it.

## The clock on an offer

<Steps>
  <Step title="You send. The offer opens.">
    An unclaimed offer stands for **10 minutes**. If nobody picks it up, it disappears. Nothing was stored, so nothing is left behind.
  </Step>

  <Step title="The other device claims it">
    Claiming is the receiver's move alone. Once claimed, the exchange has up to **6 hours** to finish.
  </Step>

  <Step title="The transfer runs">
    The file moves in 64 KB pieces over an encrypted connection between the two devices.
  </Step>

  <Step title="It ends">
    A finished or cancelled transfer is swept within seconds. Either side can end a claimed transfer, because a transfer takes two.
  </Step>
</Steps>

## When the two devices cannot reach each other

Home routers and office firewalls do not always let two devices talk directly. Zas handles this in two steps.

First it uses a **Cloudflare relay** to carry the encrypted stream between the devices. The transfer still runs live, and Zas still stores no copy.

If the connection cannot be made at all, Zas offers you the **storage fallback**:

<Note>
  Zas encrypts the file on this device and stores only that encrypted copy in Cloudflare R2 for up to 24 hours. It uses none of your storage. The device that already claimed it can download it after you close this tab.
</Note>

That copy lives for 24 hours, not for five days. It is a rescue, not a stored item.

## What direct cannot do

* You cannot pin a direct transfer. There is nothing to pin.
* You cannot make a share link from one. There is no stored object to link to.
* It does not appear in your export, because Zas never held it.

If you want any of those, send it as a [stored item](/en/concepts/stored) instead.

## A coding agent can be either end

A [coding agent](/en/agents/index) on your machine is a device like any other. It sends with `zas_send_direct` and receives with `zas_receive_direct`, in a channel you granted it that is in Direct mode.

Receiving takes the agent's **read** switch, because it writes a file onto the machine the agent runs on. A plain `zas_send_file` into a Direct channel is still refused before a byte is uploaded, and `zas_send_direct` into a normal channel is refused too: the two paths never guess at each other.

If a transfer fails in flight, the agent can offer the same storage fallback described above. That copy passes through storage, so the tool asks you first.

## What the server knows about a direct transfer

The Zas server carries the handshake so the two devices can find each other. It holds sealed envelopes for that handshake and the state of the offer: open, claimed, done, failed or cancelled.

It does not hold the file.
