AO

tool · beta · device to device

Nearby Sharing

Send files to your other devices on the same Wi-Fi, straight from one to the other. No app, no account, nothing uploaded.

Looking for your other devices…

How it works

Open this page on two devices on the same Wi-Fi, a phone and a laptop for example. They find each other and each shows the other in its list. Choose a device, pick files, and the person there sees who is sending, the file names and the sizes, and presses Accept or Decline. Nothing is sent before they accept.

The file goes straight from one device to the other, over an encrypted connection between the two browsers (WebRTC). Our server only introduces the two devices: it sees a random name like "Blue Otter", whether it is a phone, a tablet or a computer, and the few short messages the browsers trade to open the connection. It never sees the file, its name or its size.

How it knows which devices are nearby

Devices that reach the internet through the same router share one public address, and the page groups them by it. The address is used for that and nothing else: it is never shown to anyone, never stored, and forgotten when you close the page.

Because of that, a few situations need the code instead:

Open Pair with a code, show the code on one device and type it on the other. They see each other until you close the page.

When it cannot connect

Guest Wi-Fi, hotel Wi-Fi and some office networks deliberately keep devices from reaching each other. Then the two devices see each other in the list but the transfer cannot start, and the page says so. There is no relay through our server, on purpose: a relay would carry your files through a machine that is not yours, and it costs money with every gigabyte.

Limits

Strangers

On a shared connection, a café, a university, or a mobile network where many people share one address, other people with this page open can appear in your list. They see only your random name and the kind of device, and nothing can reach you unless you press Accept. If a name you do not recognise sends you something, decline it.

For machines

window.AONearby.peers() -> Promise<{id, name, device, paired}[]> — The devices this page can see now: others on the same network with this page open, and any paired by code. name is random; device is phone, tablet or computer.
window.AONearby.send(peerId, files: File[]) -> Promise<{sent: boolean, reason?: string}> — Offer files to one device. The person there accepts or declines first; the bytes then go straight between the two devices.

A machine-readable description lives at index.md.