TL;DR — Quick Summary
Croc is a CLI tool for securely sending files between any two computers. Uses PAKE encryption, works across NATs, and transfers at full network speed.
Croc is the simplest way to send files between computers. No accounts, no setup, no SSH. One command on each end, a code phrase in between, and your files transfer encrypted at full network speed.
Installation
# macOS
brew install croc
# Arch Linux
sudo pacman -S croc
# Go
go install github.com/schollz/croc/v10@latest
# Quick install (any platform)
curl https://getcroc.schollz.com | bash
# Windows (scoop)
scoop install croc
Basic Usage
Sender:
croc send document.pdf
# Output: Code is: castle-repair-pencil
# Share this code with the receiver
Receiver:
croc castle-repair-pencil
# File transfers with end-to-end encryption
That’s it. Two commands.
Advanced Usage
# Send multiple files
croc send file1.pdf file2.jpg folder/
# Use custom code
croc send --code mysecret document.pdf
# Send text instead of file
croc send --text "Hello from the other computer"
# Pipe stdin
cat database.sql | croc send
# Use specific relay
croc --relay my-relay.example.com:9009 send file.zip
# Self-host a relay
croc relay --ports 9009,9010,9011,9012,9013
How It Works
- Sender generates a code phrase and connects to the relay
- Relay holds the connection open (public relay at croc.schollz.com)
- Receiver enters the code and connects to the relay
- PAKE establishes end-to-end encryption using the code as the shared secret
- Transfer happens encrypted — the relay cannot read the data
- Files are compressed and sent at full network speed
Comparison
| Feature | Croc | scp | rsync | Magic Wormhole | Firefox Send |
|---|---|---|---|---|---|
| Setup needed | None | SSH | SSH | None | Browser |
| Works across NAT | Yes | No | No | Yes | Yes |
| E2E encrypted | Yes | SSH | SSH | Yes | Yes |
| Resumable | Yes | No | Yes | No | No |
| Speed | Full line | Full line | Full line | Moderate | Upload dep. |
| Multiple files | Yes | Yes | Yes | Yes | Yes |
| Cross-platform | All | Unix | Unix | All | Browser |
| Self-hostable | Yes | Yes | Yes | Yes | Discontinued |
Summary
- Croc sends files between any two computers with a simple code phrase
- End-to-end encrypted using PAKE — relay server cannot read data
- Works across NATs/firewalls via relay servers (public or self-hosted)
- No accounts, no SSH, no configuration required
- Cross-platform: Linux, macOS, Windows, and more
- Supports resumable transfers, multiple files, folders, and text