Skip to content

denislupookov/altersend

Repository files navigation


AlterSend

File transfer without the cloud storage.

Files go directly between your devices — end-to-end encrypted, no accounts, nothing stored, no limits.

License Platforms

Website · Download · Discord · X


Sending a file from desktop to mobile with AlterSend

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 cloud storage — files go directly between devices; nothing is ever uploaded or stored on a server
  • 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 13 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 · Flatpak
Android Google Play · APK
iOS App Store

macOS Homebrew

You can also install AlterSend on macOS using Homebrew:

brew install --cask altersend

Linux Flatpak

You can build and install the included Flatpak manifest yourself (needs flatpak-builder):

git clone https://github.com/denislupookov/altersend.git && cd altersend
flatpak-builder --user --install --install-deps-from=flathub --force-clean build-dir flatpak/com.altersend.AlterSend.yaml

How it works

  1. Open AlterSend on both devices
  2. One device shows a join code (or QR)
  3. The other scans or types it
  4. Files transfer directly — peer to peer
   ┌──────────┐                                  ┌──────────┐
   │ Device A │ ◄─── direct, E2E encrypted ────► │ Device B │
   └──────────┘                                  └──────────┘
      │    ▲                                        ▲    │
      │    └───── discovery via Hyperswarm DHT ─────┘    │
      │             (hash of join code only)             │
      │                                                  │
      │            ┌───────────────────────┐             │
      └──────────► │ Relay (fallback only) │ ◄───────────┘
                   │ forwards encrypted    │
                   │ bytes it can't read   │
                   └───────────────────────┘

Under the hood

AlterSend is built on Hyperswarm, a Kademlia DHT at its core. Behind those four steps:

  1. A random 32-byte key is generated for each transfer (crypto.randomBytes(32)). That 64-char hex string is the join code you share.
  2. 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.
  3. Public bootstrap nodes are the only entry point. A handful of them get peers onto the DHT. After that, no central server is involved in discovery. Most transfers are direct peer-to-peer; when a direct connection can't be established — usually because both peers are behind symmetric NAT (for example both on a VPN) — the transfer falls back to a relay that forwards the already-encrypted stream between them without ever seeing file contents. It's on by default and can be turned off in Settings → Relay.
  4. The connection is end-to-end encrypted. Peers connect over a Noise-encrypted socket. The sender reads each file straight off disk in chunks and hashes every one with BLAKE2b; the receiver checks the hash and writes the chunk at its offset in the destination file.

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

Run

npm run dev
npm run mobile:start

Build

npm run desktop:build

Platform 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, transfer orchestration, RPC
  drive/      Chunked file transfer — reads and writes files in place
  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 13 locales. See docs/i18n.md for the translation workflow.

Tech stack

Electron · React Native · Expo · Bare · Hyperswarm · Protomux · Hyperdrive · React Strict DOM · Tailwind · Zustand

Crash reporting

Crash reporting via Sentry is opt-in and off by default.


Contributors

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

About

Send files directly between devices over the internet - no cloud storage, no size limits.

Topics

Resources

License

Contributing

Security policy

Stars

1.2k stars

Watchers

14 watching

Forks

Packages

 
 
 

Contributors