

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?
Join our Discord to contribute
The easiest way to get started is by downloading one of the following versions for your respective operating system:
| Platform | Download |
| Windows | AltSendme.exe (x64) |
| macOS | AltSendme.dmg |
| Linux | AltSendme.deb |
| Android | AltSendme.apk |
Windows on ARM (Snapdragon / Copilot+ PC): use AltSendme_*_aarch64-setup.exe from GitHub Releases.
Windows (Scoop)
scoop bucket add extras
scoop install extras/altsendme
More download options in GitHub Releases.
<img src="https://www.altsendme.com/assets/sponsors/testmu-dark.svg" height="80" alt="TestMuAI">
We're looking for Partners to join our mission! Partner with us and support while we push the boundaries of peer-to-peer file transfer.
🇺🇸 🇷🇺 🇫🇷 🇨🇳 🇩🇪 🇯🇵 🇮🇳 🇹🇭 🇮🇹 🇨🇿 🇪🇸 🇧🇷 🇸🇦 🇮🇷 🇰🇷 🇵🇱 🇺🇦 🇹🇷 🇳🇴 🇧🇩 🇭🇺 🇷🇸 🇹🇼 🇰🇭
AltSendme uses Iroh under the hood to enable peer-to-peer file transfer. It is a modern modular alternative to technologies like WebRTC and libp2p.
Content-addressed blob storage and transfer. iroh-blobs implements request/response and streaming transfers of arbitrary-sized byte blobs, using BLAKE3-verified streams and content-addressed links.
Tickets are a way to share dialing information between iroh endpoints. They're a single token that contains everything needed to connect to another endpoint, or to fetch a blob in this case. Contains Ed25519 NodeIds: Your device's cryptographic identity for authentication.They're also very powerful. It's worth pointing out this setup is considerably better than full peer-2-peer systems, which broadcast your IP to peers. Instead in iroh, tickets are used to form a "cozy network" between peers you explicitly want to connect with. It's possible to go "full p2p" & configure your app to broadcast dialing details, but tickets represent a better middle-ground default.
Peers register with an open-source public relay servers at startup to help traverse firewalls and NATs, enabling connection setup. Once connected, Iroh uses QUIC hole punching to try and establish a direct peer-to-peer connection, bypassing the relay. If direct connection is possible, communication happens directly between peers with end-to-end encryption; otherwise, the relay operates only temporarily as a fallback. This enables smooth reliable connections between peers within local-network and across the internet.
QUIC is a modern transport protocol built on UDP, designed to reduce latency and improve web performance over TCP. Developed originally by Google and now standardized by the IETF as HTTP/3's foundation, it integrates TLS 1.3 encryption directly into the protocol.
QUIC allows following super-powers: * encryption & authentication * stream multiplexing * no head-of-line blocking issues * stream priorities * one shared congestion controller * an encrypted, unreliable datagram transport * zero round trip time connection establishment if you've connected to another endpoint before
AltSendme uses open-source public relay servers to support establishing direct connections, to speed up initial connection times, and to provide a fallback should direct connections between two endpoints fail or be impossible otherwise. All connections are end-to-end encrypted. The relay is “just another UDP socket” for sending encrypted packets around. Read more.
You can run your own iroh relay and point AltSendme at it instead of the public infrastructure:
deploy/relay/ (Docker Compose on a VPS or Fly.io).access.shared_token on the server.For a fully private setup, configure the same relay URLs on both sender and receiver devices.
Transfers can still work when one side uses custom relays and the other uses the default public relays. Here's the simple version:
Your relay setting controls where your device registers. When you share a file, the ticket includes your relay URL. The other person connects using that ticket — they don't need to match your settings.
| Who shares | Sender uses | Receiver uses | Usually works? |
|---|---|---|---|
| Alice | Custom (open relay) | Public relays | Yes — receiver reaches Alice via the relay URL in the ticket |
| Alice | Custom (auth token required) | Public relays, no token | Often no — receiver can't authenticate to Alice's private relay |
| Alice | Custom (auth token required) | Same relay + same token | Yes |
| Either side | Any | Any, same LAN or good NAT | Yes — direct peer-to-peer may skip relays entirely |
Direction matters for privacy, not just connectivity:
So mixed setups are fine for getting files across, but they're not fully private unless both people use the same self-hosted relay(s) (or connect directly without relay fallback).
Quick rules of thumb:
📫 Drop your Email to recieve updates
Fork and clone the repository:
bash
git clone https://github.com/your-username/alt-sendme.git
cd alt-sendme
Install frontend dependencies:
bash
npm install
Install Tauri:
bash
cargo install tauri-cli
Run in development mode:
bash
cargo tauri dev
(Optional) Setup android project:
bash
rm src-tauri/gen/android
cargo tauri android init
git checkout src-tauri/gen/android
cargo tauri android dev
Build locally :
bash
cargo tauri build --no-bundle
Install on Android : ``` npm run android:build -- --debug --apk
adb install -r src-tauri/gen/android/app/build/outputs/apk/universal/debug/app-universal-debug.apk ```
Install Sendme CLI tool and you can share files within same device to test the whole transfer process. Files don't leave your device it works like a copy operation.
The best way to contribute is to join our Discord and say hi. Introduce yourself and share what skills or interests you have - whether that’s coding, testing, design, or something else. You can also raise issues, suggest fixes, or pitch ideas. Maintainers are there to guide you every step of the way.
It’s the best place to get context, align on direction, and collaborate with the community.
AGPL-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.
$ claude mcp add alt-sendme \
-- python -m otcore.mcp_server <graph>