croc
Open-source tool for simple and secure peer-to-peer file transfers between devices.
External Tool
This open-source tool is maintained externally. View the source on GitHub to learn more or run it yourself.
Browse converters tools →What's next with croc?
Choose how you want to get started.
Use it free
Open the official tool or demo — no account needed.
Self-host it
Run the open-source version on your own infrastructure.
What is croc?
Croc is an open-source command-line tool designed for secure, cross-platform file transfers between any two computers without requiring local servers, port forwarding, or internet connections. It simplifies data sharing by leveraging end-to-end encryption and a relay network to bypass traditional transfer limitations. Developers, system administrators, and remote teams use croc to move files securely between devices, whether they are on the same network or geographically separated. The tool addresses common pain points in file transfer, such as the need for complex server setups, insecure protocols, or compatibility issues across operating systems. By prioritizing encryption and simplicity, croc enables users to share sensitive data or large files with confidence, while its support for IPv6 and proxy networks ensures broad accessibility in diverse network environments.
How it works
Croc is a CLI-based file transfer tool that securely moves files and folders between any two computers using a relay network. It eliminates the need for local servers or port forwarding by establishing encrypted connections through third-party relays. Its primary purpose is to provide a straightforward, secure alternative to traditional file transfer methods. By encrypting data during transit and supporting cross-platform transfers, croc caters to users who need reliable file sharing without compromising privacy. Croc supports end-to-end encryption using PAKE (Password-Authenticated Key Exchange), ensuring data remains private even if intercepted. It enables transfers between any two devices, including browsers, and handles multiple files simultaneously. The tool also allows resuming interrupted transfers and works with IPv6, with IPv4 fallback. Proxy support, such as Tor, adds an extra layer of anonymity for users concerned about privacy.
How to use it
- 1Install croc on both sender and receiver devices using package managers or binary downloads. 2. On the sender's device, run `croc send <file>` to initiate a transfer, which generates a unique session ID. 3. Share the session ID with the receiver, who then runs `croc receive <session ID>` to accept the transfer. 4. Monitor progress and resume transfers if interrupted by reusing the session ID. Practical tips include using Tor for anonymity, enabling IPv6 where available, and verifying encryption settings before transferring sensitive data.
What it can do
- file transfer
Use cases
Assumptions and limitations
Assumptions
- source: https://github.com/schollz/croc
- license: MIT — free to use
- privacy: Self-hosted — you control your data
Limitations
- Limited to command-line interface, requiring technical proficiency
- No built-in GUI or drag-and-drop functionality
- Dependent on third-party relays for connectivity, which may vary in reliability
- Does not support real-time file synchronization or version control
- Requires manual session management for multiple concurrent transfers
Understanding the result
Open-source tool for simple and secure peer-to-peer file transfers between devices.
Tool details
- Clearly flagged when a network request is needed.
- No account, no sign-up, and no tracking of your content.
- Powered by (MIT).
- Built with
- (schollz/croc)
- License
- MIT
- Runs locally
- No — requires a network request
- Verification
- Not yet verified
- Input
- Query
- Output
- Text
Built with schollz/croc. OpenToolVault provides the discovery and browser interface while crediting the original project maintainers.
- Built with
- License
- MIT
Open-source project
OpenToolVault is an independent directory. We are not affiliated with or endorsed by this project.
References
- / — GitHub Repository
Upstream project · GitHub
- MIT License
Upstream project
Frequently asked
What is croc and how does it differ from traditional file transfer tools?
Croc is a CLI tool that enables secure, encrypted file transfers between any two computers without needing local servers or port forwarding. Unlike tools like scp or rsync, which require direct network access or SSH, croc uses a relay network to bypass these constraints. This makes it ideal for scenarios where direct connections are blocked, such as firewalled environments or when transferring between devices on different networks.
How does croc ensure data security during transfers?
Croc uses end-to-end encryption based on PAKE (Password-Authenticated Key Exchange) to protect data in transit. The encryption keys are derived from a shared password known only to the sender and receiver, ensuring that even if the relay server is compromised, the data remains unreadable. Additionally, all transfers are encrypted by default, and the tool supports optional Tor integration for anonymizing network traffic.
How do I resume a transfer if it gets interrupted?
To resume an interrupted transfer, use the same session ID generated during the initial transfer. On the receiver's device, run `croc receive <session ID>` again. The tool automatically resumes the transfer from where it left off, preserving progress and avoiding the need to restart the entire process. This feature is particularly useful for large files or unreliable network connections.
How does croc compare to alternatives like scp or resync?
Croc differs from scp by eliminating the need for SSH or direct network access, making it suitable for firewalled environments. Unlike resync, which focuses on incremental backups, croc is designed for one-time or ad-hoc transfers. It also outperforms traditional tools in cross-platform support, as it works between devices and browsers without requiring server infrastructure. However, croc lacks the advanced sync features of resync and the granular control of scp.
What should I do if the transfer fails or the session expires?
If a transfer fails, check for network issues or incorrect session IDs. For expired sessions, restart the transfer by generating a new session ID on the sender's device. If the relay server is unreachable, try switching to an IPv4 connection or using a different relay. For persistent errors, verify that both devices have the latest version of croc and ensure encryption settings match on both ends.