bitMule
Carries your files. Never reads what it's carrying.
theme

What is it?

bitMule is an end-to-end encrypted file transfer tool. Send something directly, peer-to-peer, for free — or subscribe to hosted uploads and a hosted inbox so you can send and receive without either device staying online. Desktop, CLI, web and mobile all speak the same protocol, and the server is built to never see what's inside your files, encrypted or not.

Privacy and security

How it's protected
  • End-to-end encryption in two layers — files are compressed, padded and encrypted before they ever leave your device.
  • The server never sees your key. For direct shares, the decryption key lives in a piece of the link itself that's never sent anywhere.
  • Optional password protection layered on top of the link-based key, for an extra step when you want one.
  • Identifying metadata — EXIF and similar — is stripped automatically before encryption.
What we deliberately don't do
  • No server-side virus scanning.
  • No link previews or thumbnails.
  • No watermarking.
  • No content-based audit trails.
  • All of these would require seeing inside your files — and by design, we can't.

Supported platforms (and prices)

Desktop appfreeopen source
CLIfreeopen source, scriptable
Web appfreeno sign-up for direct (P2P) sharing
Android app5€one-time purchase
iOS app10€one-time purchase

Pro services (hosted uploads and hosted inbox) work identically across every platform above.

Free features

Direct sharing P2P
  • Share files and folders instantly via a link — the recipient's browser or app starts downloading automatically.
  • No account needed to send or receive.
  • Works across desktop, CLI and web today.
Desktop, CLI & web
  • Full-featured, no paywall — desktop and CLI are open source; the web app needs no install.
  • The web app doesn't do background sync or auto-upload — a browser limitation, not a pricing one.
  • Mobile apps add native convenience (share-sheet, background sync, camera roll, push) for a small one-time fee, but do nothing the web app can't already do.

Paid features

Hosted uploads
  • Upload once, get a persistent link that works any time — your device doesn't need to stay online.
  • Unique per-recipient links, individually revocable, or a shared link with a download cap.
  • Mix both on the same upload.
  • Default 7-day expiry, adjustable account-wide or per upload.
  • A single-use link is only spent once the download completes successfully.
Hosted inbox
  • Let anyone send you files without your device being online.
  • One-time upload links via app, CLI or REST API.
  • Standing upload access for regular contacts, with configurable storage and file-count limits.
  • Uploads encrypt directly to your identity; only your private key opens them.
  • Batch links and webhooks for events, classes, vendor lists, or your own automation.
Trust & contacts
  • Add a contact by public key or fingerprint, or import by username with a fingerprint confirmation step.
  • Optional multi-device key sync, or keep a key on one device for maximum control.
  • Key rotation is self-signed by the old key — contacts update automatically, in-flight links still resolve.

Pricing for paid features

Basic
100GB storage · 500GB bandwidth
4€/mo
Extended
500GB storage · 2TB bandwidth
10€/mo
overage, flat & metered: storage 0.006€/GB·mo bandwidth 0.0025€/GB no packs to buy, nothing to roll over

Crypto details

for those who care — spec v1, reviewed 2026-09-03
AES-256-GCM bulk cipher / X25519 ephemeral exchange / forward secrecy by design / fails closed, never to plaintext
Key exchange
  • Fresh X25519 keypair per session; DH secret HKDF-split into independent wrap and meta keys.
  • Ephemeral privates are wiped right after use, so a leaked link later can't reconstruct a past session's key.
Bulk transfer
  • Bulk stream key B is fresh per file, chunk-indexed nonces, AEAD on every chunk.
  • Missing chunk at close-out → transfer rejected, not silently corrupted.
Failure mode
  • No plaintext fallback — a failed key exchange errors the transfer instead of downgrading.fail closed
  • Optional Ed25519 signature proves sender identity without breaking anonymous sends.