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

3 stars

Watchers

1 watching

Forks

Repository files navigation

CrocApp

Send a file to any device, anywhere, with a code phrase.
A free, open-source native SwiftUI app for iPhone, iPad, and Mac.

CI 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) Not listed yet; once live links will be posted
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. 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

Core transfer
Feature croc equivalent
Send files, multiple at once, drag-drop or picker positional args
Send folders positional args
Send text and clipboard contents --text
Receive by code phrase positional args
Custom code phrase --code
Show QR on send, scan QR on receive --qrcode
Choose output folder; Files-visible by default on iOS --out
Keep Both or Replace when a file already exists; resume with Replace --rename, --overwrite
Preview the file list, then accept or decline interactive prompt
Live progress, speed, cancel; Live Activity on iOS
Local network and relay raced automatically croc default
Local transfer history
Power options
Feature croc equivalent
Custom relay, password, IPv6 --relay --relay6 --pass
Force local-only transfers --local
Disable compression --no-compress
Zip a folder before sending --zip
Exclude patterns, respect .gitignore --exclude --git
Auto-accept transfers, off by default --yes
Require confirmation on both sides --ask
Connection: Automatic or Relay only --transport auto|relay
Advanced settings
Feature croc equivalent
SOCKS5 proxy --socks5
HTTP proxy --connect
Send speed limit --throttleUpload
Encryption curve --curve
File hash algorithm --hash
Sender IP, direct connect --ip
Multicast address (macOS) --multicast
Base port, parallel connections, multiplexing --port --transfers --no-multi
Built-in DNS resolver --internal-dns
Native to the app
Feature
Share extension: send from any app (iOS)
Menu bar quick send and Open at login (macOS)
Receive links: crocapp://, crocapp.dev/r/ and getcroc.com/?code= open Receive with the code filled in
Shortcuts and Siri actions: Send Files, Send Text, Receive
Trust UI: end-to-end badge, How It Works, active-relay indicator
Share Link and a QR code that opens CrocApp or a page that explains how to receive
Send as Link: files encrypted on your device, for someone who is not online, with expiry and revoke
iPad File menu: Show Receive Folder in Files

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.

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

3 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages