Skip to main content
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.
Both devices need Zas open at the same time. Direct is a live handshake, not a drop box.

How large a direct transfer can be

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

The clock on an offer

1

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.
2

The other device claims it

Claiming is the receiver’s move alone. Once claimed, the exchange has up to 6 hours to finish.
3

The transfer runs

The file moves in 64 KB pieces over an encrypted connection between the two devices.
4

It ends

A finished or cancelled transfer is swept within seconds. Either side can end a claimed transfer, because a transfer takes two.

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:
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.
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 instead.

A coding agent can be either end

A coding agent 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.