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.

Bash
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-fs begins 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 cloudflared binary 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.