A free and open-source file transfer tool that harnesses the power of cutting-edge peer-to-peer networking, letting you transfer files directly without storing them on cloud servers.
Why rely on WeTransfer, Dropbox, or Google Drive when you can reliably and easily transfer files directly, end-to-end encrypted and without revealing any personal information?
- Send anywhere โ Works seamlessly on local networks or across continents.
- Peer-to-peer direct transfer โ Send files straight between devices, with no cloud storage in between.
- End-to-end encryption โ Always-on protection with QUIC + TLS 1.3 for forward and backward secrecy.
- No accounts or personal info โ Transfer files without sign-ups or exposing private data.
- Transfer anything โ Send files or directories of any size or any format, verified with BLAKE3-based integrity checks.
- Resumable transfers โ Interrupted downloads automatically resume where they left off.
- Fast & reliable โ Capable of saturating multi-gigabit connections for lightning-fast transfers.
- NAT traversal via QUIC โ Secure, low-latency connections using QUIC hole punching with encrypted relay fallback.
- CLI integration โ Interoperable with the Sendme CLI.
- Mobile & web โ Coming soon.
- Free & open source โ No upload costs, no size limits, and fully community-driven.
The easiest way to get started is by downloading one of the following versions for your respective operating system:
| Platform | Download |
| Windows | AltSendme.exe |
| macOS | AltSendme.dmg |
| Linux | AltSendme.deb |
More download options in GitHub Releases.
Users generate ephemeral tickets (compact, self-contained tokens embedding dialing information, node IDs, and transfer metadata) that recipients paste to initiate connections. Under the hood, AltSendme orchestrates NAT hole punching via QUIC's UDP transport, falling back to encrypted DERP relays only when direct paths fail, ensuring reliable end-to-end encrypted transfers with BLAKE3 integrity verification.
When sender drags files into the UI, altsendme hash content with BLAKE3, create a content-addressed blob (keyed by multihash), and generate a ticket containing:
- node_id: Sender's Iroh endpoint hash
- dial_info: Temporary dialing addresses (QUIC/UDP endpoints)
- blob_key: BLAKE3 hash of transfer payload
- TTL and ephemeral session nonce
Receiver pastes ticket. AltSendme then:
- Parses ticket to extract sender's dial_info
- Initiates simultaneous outbound QUIC handshakes (UDP hole punching) to predicted public mappings
- Uses 0-RTT resumption if prior connection exists (QUIC's session tickets)
QUIC Stream Multiplexing:
Stream 0: Control (handshake, progress, integrity)
Stream 1-N: Payload chunks (resumable, prioritized)
Datagrams: Signaling (keepalive, NAT refresh)
- If direct UDP/QUIC fails (symmetric NATs, firewalls), Iroh routes via DERP (tailscale's relay protocol) with encrypted forwarding without payload decryption
- Connection migration handles WiFi to mobile switches via QUIC's connection IDs
- Streams avoid TCP's head-of-line blocking; lost packets affect only their stream
| Aspect | Classic P2P | AltSendme |
|---|---|---|
| Discovery | STUN/TURN broadcast | Private tickets |
| NAT Traversal | Manual port mapping | Auto hole punch + DERP |
| Encryption | Bolt-on TLS | Native QUIC crypto |
| Resilience | Single path | Multipath + migration |
| Privacy | IP exposed | Cozy network |
๐บ๐ธ ๐ท๐บ ๐ท๐ธ ๐ซ๐ท ๐จ๐ณ ๐น๐ผ ๐ฉ๐ช ๐ฏ๐ต ๐น๐ญ ๐ฎ๐น ๐จ๐ฟ ๐ช๐ธ ๐ง๐ท ๐ธ๐ฆ ๐ฎ๐ท ๐ฐ๐ท ๐ฎ๐ณ ๐ต๐ฑ ๐บ๐ฆ ๐น๐ท ๐ณ๐ด ๐ง๐ฉ ๐ช๐น
If you want to contribute or run the app from source:
- Rust 1.81+
- Node.js 18+
- npm or yarn
-
Install frontend dependencies:
cd web-app npm install -
Run the desktop app:
cd src-tauri cargo tauri dev
This will start the app with hot reload enabled for both frontend and backend changes.
- Build stage:
cd src-tauri
cargo tauri build --no-bundle- Run:
cd src-tauri/target/release
./alt-sendme # macOS or Linux
alt-sendme.exe # WindowsAGPL-3.0
See PRIVACY.md for information about how AltSendme handles your data and privacy.
Reach me here for suggestions, feedback or media related communication.
Thank you for checking out this project! If you find it useful, consider giving it a star and helping spread the word.

