File transfer without the cloud storage.
Files go directly between your devices — end-to-end encrypted, no accounts, no servers, no limits.
Contents
About
AlterSend is a free, open-source app for sending files directly between your devices — no cloud, no uploads, no size limits. Files transfer peer-to-peer and are end-to-end encrypted; nothing is ever stored on a server.
Why use WeTransfer, Dropbox, or Google Drive when you can send files directly — instantly, privately, with no upload costs and no limits?
Features
- No accounts — no signup, no login, no email address required
- No servers — files transfer directly device-to-device, nothing stored in the cloud
- End-to-end encrypted — only your devices can read your files, always
- No file size limit — send a 100 MB photo or 500 GB video archive, same experience
- Pair your devices — pair a device once, then send to it without scanning or typing a code each time
- Cross-platform — macOS, Windows, Linux, iOS, Android
- Works everywhere — local network or across continents, same code path
- Multi-language — fully translated UI, available in 12 languages
- Open source — Apache-2.0, audit every line yourself
Download
Get the latest release from altersend.com/download or directly from the table below.
| Platform | Download |
|---|---|
| Windows | Microsoft Store (signed) · EXE installer |
| macOS | DMG — Apple Silicon · DMG — Intel · Homebrew |
| Linux | AppImage |
| Android | Google Play · APK |
| iOS | App Store |
Windows
.exe— not yet signed, so Windows will show "Windows protected your PC" on first run. Click More info → Run anyway to install. The Microsoft Store version is signed and avoids this warning.
macOS Homebrew
You can also install AlterSend on macOS using Homebrew:
brew install --cask altersend
How it works
- Open AlterSend on both devices
- One device shows a join code (or QR)
- The other scans or types it
- Files transfer directly — peer to peer
┌─────────┐ encrypted P2P ┌─────────┐
│ Device │ ◄──────────────────────────────► │ Device │
│ A │ direct, no middleman │ B │
└─────────┘ └─────────┘
▲ ▲
│ peer discovery via Hyperswarm │
└────────────────────────────────────────────┘
(DHT, no central server)
Under the hood
AlterSend is built on Hyperswarm, a Kademlia DHT at its core. Behind those four steps:
- A random 32-byte key is generated for each transfer (
crypto.randomBytes(32)). That 64-char hex string is the join code you share. - Peers rendezvous on a hash of that key, not the key itself. Both sides compute the same discovery key — a BLAKE2b hash derived from the join code — and join the DHT on that. The raw key never leaves your device, only its hash is published.
- Public bootstrap nodes are the only entry point. A handful of them get peers onto the DHT. After that, no central server is involved — and there's no relay fallback, so if direct hole-punching fails, the connection fails.
- The connection is direct and end-to-end encrypted. Peers connect over a Noise-encrypted socket, and the sender shares its Hyperdrive key over that channel. Files are imported into the sender's local Hyperdrive, replicated to the receiver's, then written out to disk — so in v1 each side needs roughly 2× the transfer size in free space while a transfer runs. (Working to improve this.)
Pair once, skip the code. You can pair devices you own so future transfers go straight through — no code to scan or type. Pairing only stores a public device key, the secret stays in your OS keychain, and a paired device is recognized without exposing your identity to anyone else. See docs/architecture.md for the full design.
For developers
Prerequisites
- Node.js 20+
- npm 10+
- Xcode (iOS) or Android Studio (Android)
Setup
git clone https://github.com/denislupookov/altersend.git cd altersend npm install cp apps/desktop/.env.example apps/desktop/.env cp apps/mobile/.env.example apps/mobile/.env # All env vars are optional in dev — the app runs without them.
Run
npm run dev # desktop (Electron) npm run mobile:start # mobile (Expo)
Build
npm run desktop:build # packages + desktop appPlatform installers (.dmg, .exe, .AppImage) are produced by the release CI workflow — trigger manually from the Actions tab.
Project structure
apps/
desktop/ Electron app — main + renderer + Bare worklet
mobile/ React Native / Expo app
packages/
core/ P2P protocol — Hyperswarm, Hyperdrive, RPC
domain/ State management — Zustand store, business logic
components/ Cross-platform UI — React Strict DOM + Tailwind
locales/ Shared locale metadata, i18next setup, and catalogs
docs/
architecture.md Full system overview
i18n.md Translation workflow and locale coverage
See docs/architecture.md for data flow and inter-process boundaries.
Internationalization
Desktop and mobile share translation catalogs through @altersend/locales, currently covering 12 locales. See docs/i18n.md for the translation workflow.
Tech stack
Electron · React Native · Expo · Bare · Hyperswarm · Hyperdrive · React Strict DOM · Tailwind · Zustand
Crash reporting
Crash reporting via Sentry is opt-in and off by default.
Contributors
Contributing
Pull requests welcome. See CONTRIBUTING.md for setup, code style, and the PR process.
Security
Found a vulnerability? Follow the disclosure process in SECURITY.md — please don't open a public issue.
License
Apache-2.0 © AlterSend


