Everything you need to know about secure file transfers
Learn about croc's encryption and privacy features
Get croc running on your system
Master file transfer commands and options
Customize and extend croc functionality
croc is a command-line tool that allows you to easily and securely send files and folders between any two computers. It uses end-to-end encryption with PAKE (Password-Authenticated Key Agreement) to ensure your files remain private during transfer.
croc uses PAKE (Password-Authenticated Key Agreement) to establish a shared secret between sender and receiver. This shared secret is then used to encrypt the files with AES-256. The relay server only sees encrypted data and cannot access your files. No server ever sees your unencrypted files.
croc works on Windows, Linux, macOS, Android, and even in Docker containers. It's cross-platform and designed to work anywhere you have a command line.
The easiest way is to run curl https://getcroc.schollz.com | bash on Linux/macOS. For Windows, use scoop install croc. For package managers: brew install croc (macOS), pacman -S croc (Arch Linux), dnf install croc (Fedora). Android users can download crocgui or croc-app from F-Droid.
Simply run croc send [file-or-folder]. croc will generate a code phrase that you share with the recipient. The recipient runs croc [code-phrase] to receive the file.
Yes! Just list all files and folders you want to send: croc send file1.txt folder1/ file2.pdf
If a transfer is interrupted, you can resume it by running the same commands again. croc will automatically detect partial transfers and continue where it left off.
Yes! You can run your own relay with croc relay or use Docker: docker run -d -p 9009-9013:9009-9013 -e CROC_PASS='YOURPASSWORD' docker.io/schollz/croc. Then use --relay "myrelay.example.com:9009" when sending files.
You can specify a different elliptic curve using the --curve flag: croc --curve p521 [codephrase]. Available curves include p256, p384, p521, and ed25519.
Yes! Use the --socks5 flag: croc --socks5 "127.0.0.1:9050" send [file] to route transfers through Tor or other SOCKS5 proxies.