A CLI tool for secure, cross-platform file transfers between any two computers using end-to-end encryption and a relay.
croc is a command-line file transfer tool that enables secure, cross-platform sending of files and folders between any two computers. It uses a relay server to facilitate transfers without requiring local server setup or port forwarding, and employs end-to-end encryption via PAKE to protect data in transit. The tool solves the problem of quickly and safely sharing files across different operating systems with minimal configuration.
Developers, system administrators, and technical users who need a reliable, secure, and easy-to-use method for transferring files between computers via the command line.
Developers choose croc for its combination of security, simplicity, and cross-platform compatibility, offering features like resumable transfers, self-hosted relay options, and no need for complex network setup, making it a versatile alternative to traditional file-sharing methods.
Easily and securely send things from one computer to another :crocodile: :package:
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses PAKE for secure transfers, ensuring data is encrypted before leaving the sender's device and only decrypted by the recipient, as highlighted in the README's security features.
Works on Windows, Linux, and macOS with simple install commands like Homebrew or Scoop, eliminating the need for port forwarding or local servers.
Allows interrupted transfers to be resumed without restarting, saving time and bandwidth for large files, a key feature emphasized in the documentation.
Supports running custom relay servers with Docker or bare metal, giving users full control over their transfer infrastructure, as detailed in the self-host relay section.
On Linux and macOS, to prevent secret leakage (CVE-2023-43621), users must use environment variables or run 'croc --classic', adding complexity compared to the default behavior.
Relies on relay servers for NAT traversal, which can introduce latency and requires trust in the relay operator; self-hosting needs at least two open ports, adding setup burden.
Focuses solely on transferring files and folders, lacking built-in features for syncing, versioning, or cloud integration, which may limit use in more complex workflows.