A simple CLI tool for sharing files P2P on your local network or over the public internet.
CloudDrop allows you to share files in two ways:
Skip the middleman (Discord, Gmail, Slack, etc.) with this free CLI tool that doesn't store your data. CloudDrop runs locally on YOUR machine and connects to a cloud storage provider for encryption and security.
Share files directly with friends or family—both clients just need the CloudDrop CLI installed. Pure byte-to-byte P2P sharing with full security and privacy.
CloudDrop enables you to share files or directories either P2P or over the public internet using Kafka and Google Storage. It ensures high security via access codes.
Clone the repository and download tar.gz file or download it directly here clouddrop.tar.gz(Download) file.
tar -xvf clouddrop.tar.gz
sudo cp clouddrop /usr/local/bin/Client A (Sender):
clouddrop drop /path/to/fileClient B (Receiver):
clouddrop pickClient A (Sender):
clouddrop send /path/to/fileClient B (Receiver):
clouddrop receive <code>| Command | Description |
|---|---|
drop |
Upload files to P2P network. Must provide a valid file path to a file or directory. |
pick |
Receive files from P2P network. No arguments required. |
send |
Upload files over public internet. Must provide a valid file path. |
receive |
Receive files over public internet. Must provide a valid code received from the sender. |
| Limit | Value |
|---|---|
| Maximum file size (send method) | 5GB |
| File expiry (Public Internet) | 5 minutes after code generation |
| File expiry (P2P) | No expiry (real-time transfer) |
- Share files or directories between computers on your local network (P2P)
- Share files over the public internet
- Share files on your machine, effectively copying them to the receiver's path
Contributions are welcome! To get started:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For development, you will need:
- An active
credentials.jsonfile in the project root (for Authority server) - An available bucket name in Google Cloud Storage
The project uses separate .env files for the CLI and the Authority server. Copy the appropriate example files and fill in the values.
| Variable | Description |
|---|---|
SECRET |
Secret key for encryption/authentication |
AUTHORITY |
URL of the authority server |
BUCKET_NAME |
Google Cloud Storage bucket name |
GOOGLE_JSON |
Google Cloud service account credentials (JSON string) |
| Variable | Description |
|---|---|
SECRET |
Secret key for encryption/authentication |
BUCKET_NAME |
Google Cloud Storage bucket name |
CREDENTIALS_PATH |
Path to your Google Cloud credentials.json file |
BOOTSTRAP_SERVER |
Kafka bootstrap server address |
KAFKA_API_KEY |
Kafka API key |
KAFKA_API_SECRET |
Kafka API secret |
