LIVEReading: Send Files Between Any Two Computers Securely with crocTotal time: 5 minSteps: 5Worked first time: 92% LIVEReading: Send Files Between Any Two Computers Securely with crocTotal time: 5 minSteps: 5Worked first time: 92%
CBW
Send Files Between Any Two Computers Securely with croc
Easygithub.com/schollz/croc2026-07-21

Send Files Between Any Two Computers Securely with croc

croc lets you transfer files or folders between any two computers using a short code phrase. No accounts, no cloud storage, no port-forwarding — just end-to-end encrypted transfers.

// Build stats

  • Total time5 min
  • Number of steps5
  • DifficultyEasy
  • Worked first time92%
// Before you start

What you need

  • Two computers (any OS: Windows, Mac, or Linux)
  • Internet connection on both machines
  • Terminal / Command Prompt open on both machines
01
Step 1 of 5

Install croc on both computers

2 min

You need croc installed on the sending machine AND the receiving machine. Pick the command that matches each computer's operating system. Run the right command on each machine before doing anything else.

Terminal · mac
$ # macOS (Homebrew):
$ brew install croc
$
$ # Windows (Scoop):
$ scoop install croc
$
$ # Windows (Winget):
$ winget install schollz.croc
$
$ # Linux / macOS (no package manager):
$ curl https://getcroc.schollz.com | bash
What you should see
No errors. Running `croc --version` should print a version number like `croc v10.x.x`.
This might happen

curl command fails or says 'command not found'

Try the package-manager option for your OS instead, or download the binary directly from https://github.com/schollz/croc/releases and place it somewhere in your PATH.

02
Step 2 of 5

Send a file from the first computer

1 min

On the computer that has the file you want to share, run the send command. croc will display a short code phrase — three random words joined by dashes. That phrase is the key to your transfer. Keep the terminal open; the transfer has not started yet.

Terminal · mac
$ croc send /path/to/your/file.txt
What you should see
Sending 'file.txt' (X KB) Code is: tiger-apple-hotel On the other computer run: croc tiger-apple-hotel
This might happen

You want to send a whole folder instead of one file

Just point croc at the folder path: `croc send /path/to/folder`. Multiple files also work: `croc send file1.txt file2.pdf`.

03
Step 3 of 5

Receive the file on the second computer

1 min

On the receiving computer, type croc followed by the code phrase shown on the sender's screen. croc will connect through a public relay, verify both sides with the phrase, and start the encrypted transfer. The file lands in whatever folder your terminal is currently in.

Terminal · mac
$ croc tiger-apple-hotel
What you should see
Accept 'file.txt' (X KB)? (y/n) y Receiving... 100% |████████████████| (X KB/s) Received 'file.txt'
This might happen

Transfer stalls or never connects

Make sure both computers are online. Corporate or school firewalls sometimes block the relay. Try a mobile hotspot to confirm, or ask your network admin to allow outbound TCP on ports 9009–9013.

04
Step 4 of 5

(Optional) Set your own code phrase

1 min

If you want a phrase that is easier to read aloud — for example over a phone call — you can choose your own. It must be at least 6 characters. Do not reuse the same phrase for multiple transfers.

Terminal · mac
$ croc send --code my-secret-phrase /path/to/your/file.txt
What you should see
Sending 'file.txt' (X KB) Code is: my-secret-phrase
05
Step 5 of 5

(Optional) Resume an interrupted transfer

30 sec

If the connection drops mid-transfer, do not panic. Just run the exact same receive command again on the receiving machine. croc will pick up where it left off instead of restarting from zero.

Terminal · mac
$ croc tiger-apple-hotel
What you should see
Resuming transfer... X% already received. Receiving... 100% |████████████████|
This might happen

Resume does not work and starts over

Make sure you are running the receive command in the same folder as before. croc looks for the partial file in the current directory.

// Status

cooked. baked. worked.

A file or folder transferred directly between two computers, encrypted in transit, with no cloud service, no account, and no port-forwarding required.

// the honest bit

The honest part

croc uses a public relay server run by the project author by default. Your file contents are end-to-end encrypted, so the relay cannot read them — but it does see transfer metadata (file size, timing). For sensitive work, you can self-host a relay with `croc relay` on any server you control and point both sides at it with `--relay yourserver.com:9009`. Also, croc is a command-line tool; there is no graphical interface unless you install a third-party GUI like crocgui on Android.