Share files of any size directly from device to device. Zero configuration, completely local, E2E encrypted, and bypasses browser memory constraints.
Sender
Receiver
A unified hybrid transfer protocol built for seamless operation in online, cloud-scale, and isolated offline LAN environments.
Devices on the same network discover each other automatically based on shared IP mapping. Connect and stream files in seconds over local Wi-Fi with no configuration.
Files are encrypted chunk-by-chunk in-browser using AES-256-GCM. The decryption key stays inside the URL hash fragment (#), which is never sent to the server.
Large files (10GB+) will exhaust browser heap memory and crash the tab. We buffer chunks directly to client disk storage via IndexedDB to enable infinite file size transfers.
A browser Service Worker intercepts downloads and streams chunks from IndexedDB directly to the browser download manager in real-time, bypassing RAM heap exhaustion.
SendFiles protects your privacy with a zero-knowledge architecture. No unencrypted data or keys ever touch the network or server.
An AES-256-GCM key is generated directly in your browser. Files are encrypted chunk-by-chunk before sending.
The key is placed in the URL hash (#). Browsers strictly keep hash segments client-side, meaning the key is never sent to the signaling server.
Locker PIN codes are stretched client-side using PBKDF2 with 600,000 iterations of SHA-256, protecting against brute-force attacks.
The desktop app is the recommended option. The command-line builds remain available if you prefer to run SendFiles as a background service.
A normal windowed application, like any other program on your computer. It runs the sharing server in the background and shows the interface in its own window. Other devices on your Wi-Fi connect to the LAN address displayed inside the app.
Unsigned builds: these applications are not code-signed. Windows SmartScreen shows "Windows protected your PC" the first time you run one, so choose More info then Run anyway. On macOS, right-click the app and choose Open for the first launch.
You do not need these if you downloaded the desktop app above. They start the same server from a terminal and open your default browser instead of giving you an application window. Use them to run SendFiles headless, or if an application control policy blocks the desktop app.
Blocked by security policy? Standalone executables are compiled wrappers that can trigger corporate security warnings such as SmartScreen or Windows Defender Application Control. The portable archives instead ship the officially signed Node.js binary and start the app through a small launcher script, which those policies normally allow.
Port already in use? SendFiles listens on port 3000 by default. If something else holds that port, it moves to the next free one and prints the address it chose. Set the PORT and HTTPS_PORT environment variables to pick your own.
Have questions about SendFiles' design, security, or network routing? Find answers here.