Skip to main content
Web only. Direct runs in Zas on the web, at zas.red. The iOS and Android apps do not have it.
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 channel’s top bar has a Direct switch. Turn it on and a Direct lane opens above the channel’s items. The switch is a channel setting, so it stays on across your devices. The first time, a card explains the lane: choose Open Direct.
  • Send: drop files on the lane, or choose Choose files. Only files in the lane travel by Direct. A file you drop anywhere else in the channel is stored for 5 days, as always.
  • Receive: open the same channel in Zas on the other device. The lane says a file is waiting. Tap Receive and choose where to save it.
  • Close: tap × on the lane, or turn the switch off. Closing withdraws every offer that nobody has received yet.
In an organization, an administrator can turn Direct off. The switch then shows Off · policy and cannot be turned on.
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, zas_send_direct_fallback and zas_receive_direct_fallback deliver the same file through the storage fallback described above, the encrypted copy that lives up to 24 hours. That copy passes through storage, so the agent 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.