Skip to content
bakirgdevPublic

About

Unofficial native SwiftUI app for croc on iPhone, iPad and Mac: send files, folders and text to any device with a short code phrase. Free, open source and end-to-end encrypted.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

1 watching

Forks

Repository files navigation

CrocApp

Send files with a code phrase
A free, open-source native SwiftUI app for iPhone, iPad and Mac.

CI OpenSSF Scorecard OpenSSF Best Practices Latest release Platforms MIT License Website

What it is

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.

Download

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.

How it works

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
Loading
  1. The sender picks files, a folder, or text.
  2. CrocApp shows a code phrase. Say it, message it, or show it as a QR code.
  3. 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.

Screenshots

CrocApp on macOS, ready to send: the code phrase, a QR code, and an end-to-end encrypted badge.
macOS: send, with code phrase and QR
CrocApp on iOS showing an incoming transfer of three files with Decline and Accept buttons.
iOS: receive, preview then accept
CrocApp Settings on macOS showing the receive folder and the relay address fields.
macOS: settings, with your own relay, local-only, compression

Security and privacy

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 in docs/THREAT-MODEL.md.

Features

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

FAQ

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.

Build from source

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 scheme

Signing, tests and the transfer harnesses: docs/BUILDING.md.

Project layout

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

Docs

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

Contributing

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.

Support the project

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:

Starring the repo, reporting bugs, and telling others about CrocApp help just as much.

Credits and license

About

Unofficial native SwiftUI app for croc on iPhone, iPad and Mac: send files, folders and text to any device with a short code phrase. Free, open source and end-to-end encrypted.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages