Documentation
Everything you need to know to securely share and receive files using Kaze.
Installation
Kaze is distributed as a global npm package. You need Node.js installed on your system.
npm install -g kaze-share
If you get a command not found error on Windows, ensure your npm global bin folder is in your system PATH.
Prerequisites
To use Kaze, you need to understand the two roles: The Host (sharing) and The Receiver (downloading).
| Requirement | The Host | The Receiver |
|---|---|---|
| Node.js (v18+) | ✅ Required | ✅ Required |
| Kaze CLI | ✅ Required | ✅ Required |
| cloudflared | ✅ Required | ❌ Not Needed |
Installing cloudflared (Hosts only)
The host machine must have the Cloudflare Tunnel daemon installed and available on their system PATH.
Download cloudflared here →Hosting Files
Navigate to the directory you want to share using your terminal.
1. Initialize
Run this once per folder. It creates a hidden .kaze/config.json file (which is automatically added to gitignore rules).
kaze init
2. Set a Password
Protect your files. The password is hashed using bcrypt before being saved to the config.
kaze set-password mySecurePassword123
3. Start Sharing
This spins up a local Express server and a Cloudflare Tunnel simultaneously.
kaze host
Copy the generated trycloudflare.com URL and send it to your recipient along with the password. Keep this terminal open to keep the tunnel alive.
Downloading Files
The receiver needs to run the get command using the URL and password provided by the host.
kaze get https://random-words.trycloudflare.com mySecurePassword123
Custom Output Directory
By default, files are extracted into the current working directory. You can specify a different folder using the -o flag.
kaze get <url> <pw> -o ./downloaded-files
Security & Architecture
Kaze is designed to be completely trustless. Your data never touches our servers because we don't have any.
- Local Processing: When a request hits your local Express server,
tar-fsbegins dynamically packing your folder into a tarball and pipes it directly into the HTTP response. - Zero RAM Footprint: Because the files are piped dynamically as a stream, you can share a 50GB folder on a laptop with 4GB of RAM without crashing.
- Bcrypt Authentication: The host's password is hashed locally. When the receiver connects, the Express middleware verifies the provided password against the hash.
- Cloudflare Tunnels: The
cloudflaredbinary creates an outbound-only connection from your machine to Cloudflare's edge, bypassing NAT and firewall restrictions safely without opening local ports. All data is automatically SSL/TLS encrypted.