40,900
stars
+9
1,653
forks
244
watchers
748
prs
640
issues
232
releases
0
discussions
README
This project’s future depends on community support. Become a sponsor today. About croc is a tool that allows any two computers to simply and securely transfer files and folders. AFAIK, _croc_ is the only CLI file-transfer tool that does all of the following: - Allows any two computers to transfer data (p2p with relay fallback) - Provides end-to-end encryption (using PAKE) - Enables easy cross-platform transfers (Windows, Linux, Mac, Browser) - Allows multiple file transfers - Allows resuming transfers that are interrupted - No need for local server or port-forwarding - IPv6-first with IPv4 fallback - Can use a proxy, like Tor For more information about croc, see my blog post or read a recent interview I did. !Example No-install You can use croc without installing anything at getcroc.com. The browser version is fully compatible with the CLI, so you can send and receive files between them. Install You can download the latest release for your system, or install a release from the command-line: bash curl https://getcroc.com | bash The installer places croc and croc-update in the same directory. Standalone release archives include both binaries too. To upgrade: bash croc update check croc and prepare the updater when needed croc-update update the croc active on PATH The updater shows download progress with transferred bytes. Each command asks before changing a binary. Pass --yes to each command to skip its confirmation. Protected directories such as /usr/local/bin may still require authentication: the command requests sudo or doas on Unix, or UAC approval on Windows. Writable custom prefixes work without elevation: bash curl https://getcroc.com | bash -s -- -p "$HOME/.local/bin" croc update --check reports croc release availability without installing; croc-update --check checks the croc active on PATH. Direct helper use selects that executable first, including a user-owned installation such as $HOME/go/bin/croc. If croc is absent from PATH, it installs beside the helper. Use croc-update --path /path/to/croc to select a particular installation. When croc is current, croc update prints only its up-to-date message. When a new release is available, it ensures the helper is ready and prints Run: croc-update. croc upgrade is an alias for croc update. Neither binary overwrites itself or automatically downgrades a newer installed version. If an older croc update reports that the running executable is not writable, run the installer once to obtain this pair. Subsequent upgrades use the commands above. Manually extracted standalone archives do not need installer registration. Package-managed installations use their owning package manager instead. When the CLI sends or receives a transfer, it checks for a newer croc release at most once every 24 hours. The check runs in the background and any update notice is shown after the transfer finishes. Network and release-service failures in background checks are ignored; --quiet s
Top issues
#1426Expose bundle transfer progress to library users1 comments · 2026-11-06#1269croc needs your help0 comments · 2026-08-19
Latest release
v11.6.5 v11.6.5 2026-11-07What's Changed chore: update dependencies by @schollz in https://github.com/schollz/croc/pull/1429 Full Changelog: https://github.com/schollz/croc/compare/v11.6.4...v11.6.5