Ferry

Hand it to your other device.

A password, a paragraph, a file. Ferry moves it across in a couple of seconds, encrypted the whole way, and keeps nothing once you close the tab.

Starting Ferry…

What Ferry is

Ferry is a free, open-source tool for moving a password, a piece of text or a file from one device to another. Both devices open the same web page, one shows a code, the other reads it, and the thing goes across a connection that is encrypted end to end. There is no account to make, nothing to install, and nothing left on a server afterwards.

It exists because the usual routes all go through somebody else. Email it to yourself and it sits on a mail server. Drop it in a chat and it lands in that company’s storage. Upload it and paste a link, and now the link is the secret and the file is on a disk you do not control. None of that is necessary when the two devices are yours and often an arm’s length apart.

How a crossing works

  1. 1

    One device opens a crossing

    It mints a ten-character code and shows it as a QR. The code is the only secret, and it never reaches a server — the relay only ever sees a hash of it.

  2. 2

    The other device reads the code

    Scan the QR or type the ten characters. Both browsers generate a throwaway key pair and agree on a shared key, salted with the code, so a relay that tried to insert itself would end up with a different key and be caught immediately.

  3. 3

    Both screens show four words

    Those words come from the agreed key. Matching words on both devices mean nobody is in the middle — a check you make yourself, without trusting anyone.

  4. 4

    The data goes straight across

    On the same network the bytes travel device to device and never touch the relay at all. When a network blocks that, the same encrypted frames are forwarded instead — the relay still cannot read them.

The long version, with the cryptography spelled out →

What Ferry promises

End-to-end encrypted

ECDH P-256, HKDF and AES-256-GCM through WebCrypto, with separate keys for each direction.

No account, ever

Nothing to sign up for and no identity to prove. Open the page and use it.

Nothing stored

No upload, no copy on a disk somewhere, and received items clear themselves on a timer.

Nothing logged

The relay never learns your code, sees only ciphertext, and keeps no record of who paired with whom.

Nothing measured

No analytics, no tracking pixels, no third-party fonts or scripts. The page talks to nobody but you.

Open source, MIT

Read it, run the crypto tests, or host the whole thing yourself.

What people use it for

A password onto your phone

Off the password manager on your laptop and into your hand, without it passing through an inbox or a chat log. It clears itself two minutes after it arrives.

A photo or a video off your phone

Straight into the browser on your desktop, at local network speed, without a cable, an app, or a round trip through cloud storage.

A document to a laptop that is not yours

A hotel computer, a client's machine, a library terminal. Nothing is installed and nothing is left behind when the tab closes.

A long URL or a block of text

Config snippets, one-time codes, an address you would otherwise retype character by character across a room.

Between platforms that will not talk

Android to Windows, iPhone to Linux, work laptop to personal tablet. Ferry only needs a browser on both ends, so the operating systems never have to agree on anything.

On a network with no internet

Run the bundled LAN host and two devices on the same Wi-Fi pair with nothing leaving the building at all.

Compared with the usual ways

Where the file ends up, whether an account is needed, and the size limit, for four ways of moving a file between two devices.
RouteWhere the file ends upAccountSize limit
Emailing it to yourselfSits on a mail server, both yours and theirsRequiredAbout 25 MB
A chat appStored by the chat providerRequiredVaries, often 100 MB
Cloud storage and a linkOn their disk; the link becomes the secretRequiredQuota-based
FerryNowhere — browser to browserNone250 MB per transfer

Ferry next to AirDrop, WeTransfer, Snapdrop and the rest →

Questions people ask

What is Ferry?

Ferry is a free, open-source web app for sending a password, a piece of text or a file from one of your devices to another. The two browsers connect directly and everything is encrypted end to end, so nothing is uploaded to a server and nothing is kept afterwards. You open the page on both devices, match a code, and send.

Is Ferry free, and is there a catch?

It is free with no paid tier, no usage limit and no upsell. There is nothing to buy because there is nothing to run at scale: with no accounts and no stored files, the only always-on piece is a small relay that introduces two browsers to each other. The source is MIT licensed, so you can also host the whole thing yourself.

Do I need an account to use it?

No. There is no sign-up, no email address and no identity of any kind. Open the page and it works. Because there is no account, there is also no profile, no history and nothing to delete later.

Are my files uploaded to a server?

No. Where the network allows it — which is most of the time, and always on a shared Wi-Fi network — the bytes travel directly from one browser to the other over WebRTC and never touch a server at all. On networks that block direct connections, the same already-encrypted frames are forwarded through a relay that cannot read them and does not store them.

How is the transfer encrypted?

Each side generates a throwaway P-256 key pair and they perform an ECDH key agreement. The shared secret is run through HKDF salted with a value derived from your pairing code, and the result encrypts every payload with AES-256-GCM, in separate keys for each direction. All of it happens in the browser through WebCrypto. The keys exist only in memory and are gone when the tab closes.

How large a file can I send?

Up to 250 MB in a single transfer. Files stream across in 64 KB pieces with backpressure, so a large one does not build up in memory on either device. There is no limit on how many transfers you make.

How do I know nobody is intercepting the transfer?

After the two devices agree on a key, both screens show the same four words, derived from that key. If the words match, the two devices hold the same key and there is no third party in between. If they differ, stop — that is exactly what the check is for. You do not have to trust the relay or the people running it to make that judgement.

Can I send several files at once?

Yes. Drop or pick as many as you like and they queue up, then go one at a time over the same encrypted link. Sending them one after another rather than all at once means each finished file is genuinely finished, and a connection that drops costs you only the file in flight — the rest stay in the queue and carry on afterwards. You can reorder nothing, but you can cancel anything still waiting, and retry anything that failed. The queue holds 50 items, and each file is still capped at 250 MB.

Do I have to scan the code again if the connection drops?

No. Ferry keeps the code in memory for as long as the tab is open, so a dropped link, a phone that slept, or a device that wandered off Wi-Fi is rebuilt on its own — the queue picks up where it left off. Separately, you can tick “Remember” while two devices are connected, and each will then offer the other as a one-tap reconnect next time, with no code at all.

Does Ferry keep logs or analytics?

No. There are no analytics, no tracking pixels and no third-party scripts. Fonts and images are served from the same origin as the page, so no other company learns that you visited. The relay keeps no record of who paired with whom; it is handed a hash of your code rather than the code, and it only ever sees ciphertext.

Which devices and browsers does it work on?

Any modern browser that supports WebCrypto and WebRTC — Chrome, Edge, Firefox and Safari — on Windows, macOS, Linux, Android and iOS. There is nothing to install, and it works between different platforms: Android to Windows, iPhone to Linux, or any other pairing.

Is Ferry open source?

Yes, under the MIT licence, and the cryptographic properties are covered by tests that run against real WebCrypto on every change: that both sides agree on a key, that the two directions use different ones, that a peer with the wrong code is refused, and that a tampered frame is rejected. You can read the source, run the tests, or host your own copy.

Every question, answered →

Read on

A plain-text summary of this site for language models lives at /llms.txt.