AirDrop
Apple to Apple, and you both need to be in the same room.
CrocApp is a free, open-source app for iPhone, iPad and Mac. Pick a file, read out a code phrase, done. No account, no upload to anyone's cloud, no same-network requirement.
A picture of the CrocApp send screen: two files queued, a code phrase reading 8412-mirage-cobalt-fresco, and a transfer running at 62 percent.
Moving a file between two devices is supposed to be solved. It is solved three different ways, and each one quits under a different condition.
Apple to Apple, and you both need to be in the same room.
Same Wi-Fi only. Guest networks and client isolation break them silently.
You upload your file to a company first, then send a link. They have the file.
A code phrase. Same room or different continents. The relay only ever sees ciphertext.
Three steps on each side. Nothing to sign up for.
Files, a whole folder, or a snippet of text.
CrocApp shows something like 8412-mirage-cobalt-fresco.
Say it, message it, or show the QR code.
They see what is coming and accept it. The transfer starts.
The code phrase never crosses the network in the clear. Both sides run PAKE over it to derive a session key the relay never learns.
Files are encrypted before they leave your device.
The relay is untrusted by design. It forwards ciphertext and nothing else.
On the same network, CrocApp connects to the other device directly and skips the relay entirely.
Everything croc can do, with a native interface in front of it.
Free, and free of charge. No trial, no tier, no account.
App Store
Coming shortlyMac App Store
Coming shortlyNotarized DMG, signed with a Developer ID
Coming shortly
brew install --cask crocapp
iOS 26 or later · macOS 26 or later
CrocApp is the interface. croc is the engine — by Zack Scholl, MIT licensed. CrocApp embeds croc's Go library. It is unofficial and unaffiliated; nothing here implies endorsement by croc's author.
croc's Go library is compiled to an XCFramework with gomobile and driven from a Swift actor. It is not a subprocess — iOS does not allow those, which is why the Android clients' architecture does not port to Apple platforms.
SwiftUI throughout, targeting iOS 26 and macOS 26.
Every decision of consequence is written down as a numbered ADR in the repository, so the reasoning is auditable rather than remembered.
CrocApp exists because of these. Some are the foundation, some showed what good looks like on other platforms.
The engine, and the protocol. Everything CrocApp does, croc does underneath.
The original code-phrase transfer, and croc's own inspiration.
Proof that a cross-platform transfer app can be genuinely pleasant to use.
The Android client. The best mobile reference for what a croc GUI should feel like.
A desktop croc GUI, and where the QR deeplink idea comes from.
The long-running cross-platform croc GUI.
It is MIT licensed and the whole thing is in the open. Bug reports are as useful as patches.
Most useful right now: try it on a network that breaks other tools, and say what happened. Guest Wi-Fi, captive portals, corporate VPNs and client isolation are exactly the conditions this app exists for, and exactly the ones hardest to test alone.
After that: VoiceOver and Dynamic Type passes, translations once the copy settles, and anything in the issue tracker marked as a good first issue.
CrocApp is free and stays free. There is no paid tier planned and nothing is held back. If it saves you a nuisance often enough to be worth something, you can help cover the Apple Developer Program fee and the hardware to test on. If not, using it and reporting what breaks is genuinely worth more.
Transfers are end-to-end encrypted, the code phrase authenticates both sides, and the relay only ever sees ciphertext. That is the whole claim, and it is croc's design rather than anything CrocApp adds.
There has been no formal third-party audit of croc, and CrocApp does not claim one. The code on both sides is open if you want to look.
No. There is nothing to sign up for and no identity attached to a transfer.
Usually yes — a relay, which forwards traffic between two devices that cannot reach each other directly. It sees ciphertext and nothing else, and it does not store your file. You can point CrocApp at your own relay instead.
Then the transfer goes straight between the two devices and skips the relay entirely. CrocApp tries both paths at once and uses whichever connects first.
Yes, in both directions. CrocApp embeds croc's own library, so a phrase from the CLI works in the app and a phrase from the app works in the CLI.
Not from CrocApp — it is an Apple-platform app. Use the croc CLI, which runs everywhere, or one of the other clients listed under Inspirations. They all speak the same protocol.
Yes. Point CrocApp at any croc relay, with a password and IPv6 if you want them.
Running croc relay on a machine you control is enough.
Nothing. No purchase, no subscription, no advertising, and no analytics.