Send files with a code phrase
A free, open-source native SwiftUI app for iPhone, iPad and Mac.
CrocApp sends files, folders, and text between two devices anywhere in the world, end-to-end encrypted, using a short code phrase like apple-house-car. No account and no shared network needed.
It is a graphical front end for croc, the command-line file-transfer tool by Zack Scholl. CrocApp embeds croc's Go library rather than shelling out to the binary, so a code phrase from the croc CLI works in the app, and the reverse.
Note
CrocApp is unofficial and not affiliated with or endorsed by croc's author.
| Platform | Where |
|---|---|
| iPhone, iPad, Mac (App Store) | CrocApp on the App Store |
| Mac (Apple silicon only) | CrocApp-<version>-arm64.dmg from GitHub Releases |
| Mac (Homebrew cask) | Not available yet. Homebrew accepts a cask once the repo shows enough public interest: 225 stars, 90 watchers, or 90 forks. Starring the repo helps |
The disk image is Developer ID signed, notarized, and updates itself through Sparkle (Check for Updates… in the app menu). Verify it with gh attestation verify <file> --repo bakirgdev/CrocApp (SECURITY.md). Install guide: crocapp.dev/docs/getting-started/install. To check a download, see Verify a release. Or build from source.
flowchart LR
S["Sender<br/>CrocApp or croc CLI"]
R["Other device<br/>CrocApp or croc CLI"]
L(["Direct path<br/>same network"])
X(["Relay<br/>ciphertext only"])
S -- "code phrase, spoken or scanned" --> R
S -- "preferred" --> L
L --> R
S -. "fallback" .-> X
X -. "fallback" .-> R
- The sender picks files, a folder, or text.
- CrocApp shows a code phrase. Say it, message it, or show it as a QR code.
- The other device enters the phrase, previews the file list, and accepts.
Both devices run PAKE over the code phrase to derive a session key, so the phrase never crosses the network in the clear and the relay never learns the key. CrocApp tries the local network and the relay at once; on the same network the transfer goes direct.
macOS: send, with code phrase and QR |
iOS: receive, preview then accept |
macOS: settings, with your own relay, local-only, compression |
|
Transfers are end-to-end encrypted, the code phrase authenticates both devices (PAKE), and the relay only ever sees ciphertext.
Warning
Neither croc nor CrocApp has had a formal third-party security audit.
- No accounts, analytics, ads, or tracking. The privacy policy lists every server the app can contact.
- Transfer history stays on the device.
- You can use your own croc relay instead of the default public ones.
- Report vulnerabilities privately through GitHub Security Advisories, never in a public issue. See
SECURITY.md. The threat model and trust boundaries are indocs/THREAT-MODEL.md.
| Area | Guide |
|---|---|
| Send files, folders, text and clipboard, with a QR code | Send |
| Receive with a code phrase, a QR code or a link, and choose what to keep | Receive |
| Custom and saved code phrases, receive links | Code phrases and links |
| Share a file for someone who is not online, with expiry and revoke | Send as link |
| Your own relay, local-only transfers, proxies and the other croc options | Settings, Run your own relay |
| Transfer history | History |
| Shortcuts, Siri, the menu bar and keyboard shortcuts | Shortcuts and Siri, Mac menu bar |
| Which croc options CrocApp covers | croc CLI interoperability, docs/knowledge/features.md |
How is this different from AirDrop?
AirDrop needs two Apple devices close to each other. CrocApp works between any two devices running croc or CrocApp, on any network, at any distance, for example from an iPhone to a Linux server on another continent.
Does it work with the croc CLI?
Yes, in both directions. CrocApp embeds croc, so croc send on a laptop can be received in the app on a phone, and the reverse. The CLI must be croc 11 or newer.
Why iOS 26 and macOS 26 (or newer) only?
It lets the app use current SwiftUI APIs and Liquid Glass without availability checks everywhere. The minimum is 26.0, so every 26.x (or newer) release works.
Is it free? Will it ever have a paid tier?
Free and MIT-licensed, and it stays that way. Donations are welcome but optional, see Support the project.
Will there be a Windows, Linux, or Android version?
Not planned yet. If you want to see CrocApp on other platforms, show your interest in an issue.
You need a Mac with macOS 26 or newer, Xcode and Go (exact versions).
git clone https://github.com/bakirgdev/CrocApp.git
cd CrocApp
scripts/build-xcframework.sh # builds the Go engine into CrocKit/Croc.xcframework
open app/CrocApp.xcodeproj # run the CrocApp schemeSigning, tests and the transfer harnesses: docs/BUILDING.md.
| Path | What it holds |
|---|---|
app/ |
The SwiftUI app for iPhone, iPad and Mac, its share extension, the direct-download target and the unit tests |
CrocKit/ |
Swift package that wraps the Go engine in a Swift API |
crocmobile/ |
Go wrapper around croc, bound by gomobile into Croc.xcframework |
design/ |
Design principles and tokens for every surface |
docs/ |
Contributor docs: architecture, building, releasing, threat model |
web/landing/, web/docs/ |
The crocapp.dev landing page and docs site |
scripts/ |
Build, verification and release scripts |
assets/ |
Icon source, mascot, favicons, disk image background and social preview |
| Read | For |
|---|---|
| crocapp.dev/docs | Using the app |
CONTRIBUTING.md |
Setup, conventions and opening a pull request |
docs/README.md |
Index of the contributor docs |
docs/ARCHITECTURE.md |
How the layers fit together |
docs/THREAT-MODEL.md |
Trust boundaries and what CrocApp defends against |
CHANGELOG.md |
What changed in each release |
Pull requests are welcome: bugs, features, docs, design, landing page. Start with CONTRIBUTING.md for setup, commit conventions, design rules, etc. Questions and ideas go to Discussions. Everyone follows the Code of Conduct. How decisions are made: GOVERNANCE.md. Where the project is headed: docs/ROADMAP.md.
CrocApp does not depend on donations: it has no paid tier and no features behind a paywall. If it saves you time and you want to give back, donations are welcome:
- GitHub Sponsors: one-time or monthly, also behind the Sponsor button at the top of this repo.
- Buy Me a Coffee: one-time.
Starring the repo, reporting bugs, and telling others about CrocApp help just as much.
- croc by Zack Scholl, the transfer engine that makes this possible. MIT.
- CrocApp by Bakir Gracić. MIT.