gitmyhub

croc

Go ★ 35k updated 1d ago

Easily and securely send things from one computer to another :crocodile: :package:

Croc lets you securely send files or folders from one computer to another using a short code phrase, with end-to-end encryption and no cloud storage, firewall configuration, or server setup required.

Gosetup: easycomplexity 2/5

Croc is a command-line tool that lets you send files or folders from one computer to another quickly and securely, no matter what operating system either machine is running. The core problem it solves is the hassle of transferring files between machines that aren't on the same network: you don't need to set up a server, open firewall ports, or use a cloud storage intermediary.

The way it works is elegantly simple. The sender runs a single command and croc generates a short code phrase — a handful of random words. The recipient types that code phrase on their machine and the transfer begins. Under the hood, the two computers connect through a relay server (a publicly available one by default, or one you host yourself), and the data is protected with end-to-end encryption using a technique called PAKE (Password-Authenticated Key Exchange). This means even the relay server cannot read your files — only the person with the matching code phrase can decrypt them.

Croc handles several practical scenarios that simpler tools miss: transfers can be resumed if they get interrupted, multiple files and entire folders can be sent in one go, and there is support for piping data through standard input and output for scripting. It even supports routing through a proxy like Tor for extra privacy, and can display a QR code so a phone can receive the code phrase easily.

You would reach for croc when you need to move a file from your laptop to a friend's computer, from your desktop to a remote server, or between two machines on completely different networks, and you want the process to be safe and dead simple. It is a Go program, which means it compiles to a single binary with no runtime dependencies, and packages are available for macOS, Windows, Linux, and most popular package managers.

Where it fits