Peer-to-peer messenger for Android and desktop

Messaging without servers. Even without internet.

MeshUp connects phones directly – over Wi-Fi, Bluetooth or, when needed, through a mesh node on the internet. End-to-end encrypted, with no account, no phone number and no Google services.

  • Free
  • Android 10 and later
  • No account needed
  • English & German
MeshUp on Android: one-to-one chat with a photo, a voice message with waveform, a quoted reply, reactions and read receipts (light theme)
MeshUp on Android: chat list with direct and group chats, profile pictures, unread messages and pinned chats (light theme)
The promise

A messenger that belongs to no one but you

No company in the middle that reads along, collects phone numbers or can pull the plug. MeshUp runs on the devices of the people who use it.

No server in between

Messages travel from device to device. There is no account and no cloud holding your chats. Even a mesh node only relays encrypted tunnels and never stores messages.

Works without internet

Nearby devices find each other over Wi-Fi and Bluetooth LE. Other MeshUp devices carry encrypted messages along and pass them on until they arrive.

End-to-end encrypted

Every connection uses the Noise protocol. Devices that pass messages on only ever see a sealed envelope. Safety numbers and QR codes show that you’re talking to the right person.

No Google services

MeshUp doesn’t need Google Play services. Location comes straight from Android, maps from OpenStreetMap, and push – if you want it – via UnifiedPush such as ntfy. Firebase is only an optional alternative.

Source available

The app, the desktop client and the mesh node are all published as source code. Anyone can read how MeshUp works, build it themselves or run their own mesh node – free for any non-commercial use (PolyForm Noncommercial).

Features

Everything you expect from a messenger

MeshUp feels familiar – chats, groups, status and calls. Except that everything happens directly between your devices.

Chats

Replies, reactions, editing and delete for everyone, voice messages with a real waveform, photos and albums, link previews, scheduled and disappearing messages, view once.

Groups & broadcasts

Groups with admins, invite links, QR codes and moderation. Join anonymously with a pseudonym used for that one group only. Plus broadcast lists for up to 256 contacts.

Status

Photos, videos and text for 24 hours, with an editor for drawing and captions, likes and views. You decide who gets to see your status.

Calls & video

Voice and video calls straight over the encrypted connection, group calls with up to 8 people (video: 4) and screen sharing. Every device mixes the audio itself – no server in between.

Polls

Single or multiple choice, reorderable options and an end date. When a poll closes, the creator’s device sends out the final tally – binding for everyone.

Live location

Share your location or live location for 15 minutes, 1 or 8 hours, and ask others for theirs. The live map shows everyone currently sharing with you – on OpenStreetMap.

Emergency alert (SOS)

Once you switch it on: hold for three seconds and your location goes to your emergency contacts – and, only if you explicitly agree, to every MeshUp device nearby. Not a replacement for calling emergency services.

Walkie-talkie

Push-to-talk, if you turn it on: hold the button and speak – everyone reachable in the chat hears you instantly, even without internet. Afterwards the message also arrives as a voice note.

Large files

Documents and videos up to 2 GB, sent device to device in encrypted chunks. Every device that has chunks helps out, and videos start playing while they’re still loading.

On your computer

MeshUp Desktop for Linux and Windows: pair it with your phone once via QR code, then chat, call and send files. Your chats stay on the phone.

Push without Google

In the background MeshUp sleeps and is woken via UnifiedPush, for example with ntfy – the wake-up carries neither content nor sender. Firebase Cloud Messaging is optional; without push, a service keeps the connection alive.

Mesh node

When Wi-Fi and Bluetooth aren’t enough, a mesh node connects contacts over the internet. It only relays tunnels and sees no content – and you can run your own.

Encrypted backup

Since no server keeps anything for you, MeshUp backs up your account, chats and media into an encrypted file – manually or automatically to a folder of your choice.

Adding contacts

By QR code, NFC or invite link. If you like, link your phone number or email address so friends can find you – the mesh node only ever gets hashes.

Multiple devices Preview

One account on several phones and tablets – messages, read status and calls on every device. Still being tested and only available from the developer section.

And there’s more:

  • Pinned & starred messages
  • Share contacts & events
  • Play music in chats
  • Widgets & Direct Share
  • App lock with fingerprint
  • Search across all chats
  • Message info with delivery route
  • Fixed addresses for VPNs
  • In-app updates
  • English & German
MeshUp Desktop

On your computer, too – still no server

The desktop client for Linux and Windows pairs with your phone via QR code. From then on, the phone connects to the computer on the same network, encrypted with Noise.

  • Write, reply, react, edit and forward
  • Send photos, videos and files by dragging them in or with Ctrl+V
  • Voice and video calls, group calls, screen sharing
  • Status, polls, emergency alerts and message info
  • Updates itself; your chats stay on the phone
Get the desktop app
MeshUp on the computer: chat list and conversation with a photo, a voice message and a reply (light theme)
A closer look

What MeshUp looks like

A few screens from the app – swipe or scroll for more.

How it works

Three ways a message gets through

MeshUp automatically takes whichever route is available. On every one of them, the message stays end-to-end encrypted.

Wi-Fi · Bluetooth
1

Directly from phone to phone

On the same Wi-Fi network or within Bluetooth range, two devices connect directly. No internet, no mobile data and no server required.

You another phone Contact
2

Passed along the mesh

If your contact is out of range, other MeshUp devices take the sealed envelope with them and hand it on until it arrives – for up to 14 days. Nobody can read it along the way.

Internet Mesh node
3

Through a mesh node

If you’re both online but far apart, a mesh node sets up a tunnel. Inside runs the same end-to-end connection as on Wi-Fi – the node sees no content and stores no messages.

What about the battery? In the background MeshUp sleeps. Anyone writing to a sleeping contact sends a wake-up call to their push address – with no content and no sender. The device connects briefly and fetches everything directly. Without push, a foreground service keeps the connection open.

Under the hood
Identity
X25519 key pair; the private key is protected by the Android Keystore
Connection
Noise_XX_25519_ChaChaPoly_SHA256, both sides authenticated
Messages
Envelopes sealed with Noise_X to the recipient’s key, with a fresh ephemeral key for every message; delivery proven by receipt
Mesh
Inventory sync between devices, envelopes valid for 14 days, at most 12 hops
Files
ChaCha20-Poly1305 per chunk, SHA-256 per chunk in the manifest
Finding contacts
Opt-in; phone number or email as an Argon2id hash, the node only stores HMACs of it
Backup
Argon2id, X25519 and ChaCha20-Poly1305; no access without the password
Tested
The Noise implementation is checked against the official cacophony test vectors
Privacy

What isn’t collected can’t be lost

MeshUp is built so that as little as possible is known about you – and so that you control the little that is.

No account, no number

Your identity is a key pair on your phone. You only link a phone number or email if you want to be found – the mesh node gets nothing but hashes, and your address book never leaves the device.

Chats only on your devices

There’s no cloud with your history. Devices passing messages on keep only sealed envelopes and delete them as soon as they have arrived or expired.

Link previews from the sender

The sender fetches a page’s title and image and sends them along. Recipients never load the page themselves.

Photos without location

Compressed photos only carry harmless camera data – never where they were taken, never serial numbers.

You decide

Online status, read receipts, typing indicator, who sees your profile photo and info, link previews and map tiles: all adjustable. Plus an app lock with fingerprint or PIN.

No ads, no trackers

MeshUp contains no ads and no analytics libraries. Update checks go to a fixed address without sending any identifiers.

Download

Try MeshUp

MeshUp is under active development. Nightly builds are created automatically after every change – once the tests have passed.

Android

Android 10 or later. A signed APK that afterwards updates itself from within the app.

  1. Download and open the APK.
  2. Allow installing from this source.
  3. Open MeshUp, enter your name and allow “Nearby devices”.
meshup-nightly.apk

Linux

AppImage for x86_64: make it executable (chmod +x) and run it. Updates itself.

AppImage

Windows

An installer that updates itself. It isn’t code-signed, so SmartScreen asks the first time: “More info” → “Run anyway”.

Installer (.exe)

In your browser

The web version of MeshUp Desktop – no installation, right in your browser. Your phone connects through the mesh node, end-to-end encrypted, even on the go. Needs the current MeshUp nightly on your phone.

Open in browser

The desktop client needs an Android phone running MeshUp. To pair, open Menu ⋮ → Linked devices → Link a device on the phone. Phone and computer have to reach each other on the same network, for example Wi-Fi or a VPN – the web version connects through the mesh node instead.

FAQ

Frequently asked questions

What exactly does “no server” mean?

There is no central service where you have an account and through which your chats flow. Messages go directly from device to device or are passed along by other MeshUp devices.

There are two helpers, both optional: a mesh node connects devices over the internet when they can’t find each other directly – it only relays encrypted tunnels. And a push service wakes sleeping devices with an empty message. Both can be switched off.

Does MeshUp really work without internet?

Yes, as long as the devices can reach each other: on the same Wi-Fi network – even one without internet access – or within Bluetooth range. If your contact is further away, other MeshUp devices can carry the message and pass it on.

Text, photos and voice messages travel in passed-along envelopes. Calls, the walkie-talkie and large files need a connection between both devices, either direct or via a mesh node.

Do I need a phone number or an account?

No. On first launch MeshUp creates a key pair on your phone – that is your identity. You add contacts by QR code, NFC or invite link.

If you want, you can link a phone number or email address so friends can find you from their address book. The mesh node only receives Argon2id hashes.

How secure is MeshUp?

All connections use the Noise protocol with X25519, ChaCha20-Poly1305 and SHA-256; the implementation is checked against official test vectors. Every message travels in its own envelope with a fresh key that only the recipient can open.

MeshUp does not use a Double Ratchet that keeps renewing keys. If your private key is stolen, recorded messages sent to it can be read. Verify new contacts by their safety number or in person with a QR code.

Does MeshUp work without Google services?

Yes. MeshUp doesn’t need Google Play services: location comes straight from Android, maps from OpenStreetMap, wake-ups via UnifiedPush – for example with the ntfy app.

Firebase Cloud Messaging is merely an optional alternative for devices with Google Play services or microG. Without any push at all, MeshUp keeps the connection open with a foreground service.

What is a mesh node – and do I need one?

A mesh node is a small relay on the internet. It brings together devices that can’t reach each other over Wi-Fi or Bluetooth and passes the encrypted data stream through. It doesn’t store messages.

You don’t have to run one: the app comes set up with mesh-node1.3xd.eu. If you like, start your own (Node.js, no dependencies) and add it in the app – or use fixed addresses over a VPN, Tailscale or WireGuard.

Is there MeshUp for iPhone or Mac?

No. MeshUp is available for Android 10 and later, and as a desktop client for Linux and Windows. There’s no ready-made macOS package, but the desktop client can be built from source on a Mac.

How do I get updates?

The Android app checks for a newer nightly at most every six hours, downloads it when you tap, verifies checksum and signature and then lets Android install it. Your chats and settings are kept. The desktop versions update themselves.

What happens if my phone breaks?

Since no server keeps your data, backups matter: MeshUp saves keys, contacts, chats and media into an encrypted file, manually or automatically every day or week. With it, you can restore everything on a new phone. Without the backup password the file can’t be opened – there is no back door.

How much does MeshUp cost?

Nothing – for any non-commercial use. The download is free, and MeshUp contains no ads and no analytics trackers. If you’d like to use MeshUp commercially, please get in touch first using the details in the legal notice.

Is MeshUp open source?

MeshUp is source-available: the complete source code of the app, the desktop client and the mesh node is public, and anyone can read, review, modify and build it. It is licensed under the PolyForm Noncommercial License 1.0.0. Because that licence excludes commercial use, it is not an open-source licence as defined by the Open Source Initiative.

Any non-commercial use is allowed: personal use, research and teaching, and explicitly use by charitable organisations, schools and other educational institutions, and government bodies. Commercial use is available on request.